我是靠谱客的博主 耍酷蜜蜂,最近开发中收集的这篇文章主要介绍力扣算法入门,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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;
    }
};

最后

以上就是耍酷蜜蜂为你收集整理的力扣算法入门的全部内容,希望文章能够帮你解决力扣算法入门所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部