我是靠谱客的博主 耍酷蜜蜂,这篇文章主要介绍力扣算法入门,现在分享给大家,希望可以做个参考。

217. 存在重复元素

给定一个整数数组,判断是否存在重复元素。

如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。

解题思路

先排序,重复数据必然相邻,只需要遍历一次数组更加的节省时间

代码

class Solution {
    public boolean containsDuplicate(int[] nums) {
         Arrays.sort(nums);//排序
          for(int i=0;i<nums.length-1;i++){
             if(nums[i]==nums[i+1]){
                 return true;
             }
          }
          return false;
    }
}

704. 二分查找

难度简单553

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1

注意点:防止溢出:mid=left+(right-left)/2

区间为左闭右闭

当判断出mid在右侧 则区间变为【mid+1,right】

当判断出mid在左侧 则区间变为【left,mid-1】

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int left = 0;
        int right = nums.size() - 1; // 定义target在左闭右闭的区间里,[left, right]
        while (left <= right) { // 当left==right,区间[left, right]依然有效,所以用 <=
            int middle = left + ((right - left) / 2);// 防止溢出 等同于(left + right)/2
            if (nums[middle] > target) {
                right = middle - 1; // target 在左区间,所以[left, middle - 1]
            } else if (nums[middle] < target) {
                left = middle + 1; // target 在右区间,所以[middle + 1, right]
            } else { // nums[middle] == target
                return middle; // 数组中找到目标值,直接返回下标
            }
        }
        // 未找到目标值
        return -1;
    }
};

最后

以上就是耍酷蜜蜂最近收集整理的关于力扣算法入门的全部内容,更多相关力扣算法入门内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部