leecode数组

217. 存在重复元素

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。

示例 1:

输入:nums = [1,2,3,1]
输出:true

示例 2:

输入:nums = [1,2,3,4]
输出:false

示例 3:

输入:nums = [1,1,1,3,3,4,3,2,4,2]
输出:true
复制代码
 1 class Solution {
 2     public boolean containsDuplicate(int[] nums) {
 3         Arrays.sort(nums);//先对它进行排序
 4         for (int i = 0; i < nums.length - 1; i++) {
 5             if (nums[i] == nums[i + 1]) {//双指针
 6                 return true;
 7             }
 8         }
 9         return false;
10     }
11 }
复制代码

 283. 移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

 

示例 1:

[0,1,0,3,12]
[1,3,12,0,0]

示例 2:

[0]
[0]
复制代码
public void moveZeroes(int[] nums) {
        int[] nums2 = nums;
        int j=0;
        int count=0;
        for(int i=0;i<nums2.length;i++){
            if(nums2[i]!=0){
                nums[j]=nums2[i];
                j++;
               
            }
        }
        for(int k=0;k<nums.length-j;k++){
            nums[k+j]=0;
        }
    }
复制代码

 169. 多数元素

给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

示例 1:

输入:nums = [3,2,3]
输出:3

示例 2:

输入:nums = [2,2,1,1,1,2,2]
输出:2
复制代码
 1 public int majorityElement(int[] nums) {
 2         Arrays.sort(nums);
 3         int a = 0;
 4         int count = 1;
 5         int temp = nums[0];
 6         for(int i=1;i<nums.length;i++){     
 7             if(temp==nums[i]){
 8                 count++;
 9                 if(count>nums.length>>>1){
10                     break;
11                 }
12             }else{
13                 temp = nums[i];
14                 count=1;
15             }
16         }
17         return temp;
18     }
复制代码

219. 存在重复元素 II

给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。

示例 1:

输入:nums = [1,2,3,1], k= 3
输出:true

示例 2:

输入:nums = [1,0,1,1], k=1
输出:true

示例 3:

输入:nums = [1,2,3,1,2,3], k=2
输出:false
复制代码
 1 public boolean containsNearbyDuplicate(int[] nums, int k) {
 2        
 3         for(int i=0;i<nums.length;i++){
 4             for (int j = i+1; j <=i+k &&j<nums.length; j++) {
 5                 int value = nums[j];
 6                 if(nums[i]==value){
 7                     return true;
 8                 }
 9             }
10         }
11         return false;
12     }
复制代码

 

 
posted @   无名之辈的ggb  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示