2020年4月21日 星期二

[LeetCode] 217. Contains Duplicate 解題思路 (Easy)



判斷陣列是否有重複的數字。




LeetCode 題目連結

 

https://leetcode.com/problems/contains-duplicate/

 

題目



Given an array of integers, find if the array contains any duplicates.
Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.
Example 1:
Input: [1,2,3,1]
Output: true
Example 2:
Input: [1,2,3,4]
Output: false
Example 3:
Input: [1,1,1,3,3,4,3,2,4,2]
Output: true

Accept 作法


這題覺得挺得心意手,時間複雜度 O(nlogn),主要是因為有做 sort。


Runtime: 0 ms
Memory: 40.1 MB

Java 程式碼

class Solution {
    public boolean containsDuplicate(int[] nums) {

        if(nums.length == 0){
            return false;
        }
        Arrays.sort(nums);
        int lastNum = nums[0];

        boolean isDuplicate = false;
        for(int i = 1;i<nums.length;i++){
            if(lastNum == nums[i]){
               isDuplicate = true;
                break;
            }
            lastNum = nums[i];
        }
        return isDuplicate;
    }
}

 

更多 LeetCode 相關資源

 

複習程式面試書籍


除了 LeetCode 練習外,我也入手了這本,題庫來自真正的面試,並非摘自教科書。它們反映出頂尖公司真正會出的題目,你可以藉此做好充分準備
需要的話可以看看,寫得很仔細。
 
 

書名:提升程式設計師的面試力:189道面試題目與解答



相關 LeetCode文章一律會放在 程式解題 標籤分類,歡迎持續追蹤。

沒有留言:

張貼留言