LeetCode Java 刷题之 217. 存在重复元素
LeetCode 链接:https://leetcode-cn.com/problems/contains-duplicate/
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 <= nums.length <= 105
- -109 <= nums[i] <= 109
通过次数511,166提交次数918,539
-
2022.3.18日提交如下java程序:
1 class Solution { 2 public boolean containsDuplicate(int[] nums) { 3 for (int i=0; i<=nums.length-2; i++) 4 for (int j=i+1; j<=nums.length-1;j++) 5 if(nums[i]== nums[j]) 6 return true; 7 return false; 8 } 9 }
编译运行都结果正确。
提交时却提示:
提交记录 70 / 69 个通过测试用例 状态:超出时间限制
估计是算法复杂度为O(n^2),不符合题目要求, 最后一个用例的运行时间超出限制。
-
改用java自带的sort(是quicksor排序?)先给数组排序,然后再前后挨个比较,发现有相等,则返回true
1 import java.util.*; 2 class Solution { 3 public boolean containsDuplicate(int[] nums) { 4 Arrays.sort(nums); 5 for (int i=0; i<nums.length-1; i++) 6 if(nums[i]== nums[i+1]) 7 return true; 8 return false; 9 } 10 }
执行结果:通过
执行用时:19 ms, 在所有 Java 提交中击败了24.01%的用户
内存消耗:55.4 MB, 在所有 Java 提交中击败了5.08%的用户
通过测试用例:70 / 70
修改 import java.util.*; 为 import java.util.Arrays; 后
执行结果:通过
执行用时:19 ms, 在所有 Java 提交中击败了24.01%的用户
内存消耗:54.3 MB, 在所有 Java 提交中击败了16.43%的用户
通过测试用例:70 / 70
-
下一步改进思路,自己用java写个quicksort排序,会否改进程序的运行复杂度?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了