当前位置: 代码迷 >> 综合 >> LeetCode 349 Intersection of Two Arrays
  详细解决方案

LeetCode 349 Intersection of Two Arrays

热度:97   发布时间:2023-10-28 04:45:11.0

思路

首先遍历一遍nums1数组,利用一个hashset将其存起来,假设这个set的名字是hash。然后再遍历一遍nums2数组,将hash中存在的元素加入一个新的set叫result。最后将这个result逐个元素都存到结果数组ans中。

复杂度

时间复杂度O(n)
空间复杂度O(n)

代码

class Solution {
    public boolean search(int[] nums, int target) {
    if(nums == null || nums.length == 0)return false;int start = 0, end = nums.length-1;while(start + 1 < end) {
    int mid = start + (end - start) / 2;if(nums[mid] == target)return true;if(nums[mid] < nums[end]) {
    if(nums[mid] <= target && target <= nums[end]) {
    start = mid;} else {
    end = mid;}} else if(nums[mid] > nums[end]) {
    if(nums[start] <= target && target <= nums[mid]) {
    end = mid;} else {
    start = mid;}} else {
    // 因为是从end开始跟mid进行比较的// 如果上面的条件是mid与start比较,那么应该是start++end--;}}if(nums[start] == target || nums[end] == target)return true;return false;}
}
  相关解决方案