Nội dung chính
- Blind 75 - Câu hỏi phỏng vấn kỹ thuật & lập trình - Giải thích
- Vấn đề:
- Giải thích:
- Giải pháp - Hashmap - O [N]:
- Information:
- Mô tả vấn đề
- Giải pháp 1: Sử dụng từ điển
- Phân tích độ phức tạp
- Giải pháp 2: Sử dụng tập hợp
- Phân tích độ phức tạp
- Phân tích độ phức tạp
- Giải pháp 2: Sử dụng tập hợp
- Kết quả khớp với """
Blind 75 - Câu hỏi phỏng vấn kỹ thuật & lập trình - Giải thích
Vấn đề:
Giải thích:nums, return true if any value appears at least twice in the array, and return false if every element is distinct.
Giải pháp - Hashmap - O [N]:
- 1
- -109
Giải thích:
Giải pháp - Hashmap - O [N]:
Giải pháp - Hashmap - O [N]:
Mô tả vấn đề
Giải pháp 1: Sử dụng từ điểnInformation:
Phân tích độ phức tạp
LinkedIn: linkedin.com/in/nkwade
GitHub: github.com/nkwade
Email:
Mô tả vấn đề
//leetcode.com/problems/contains-duplicate/
Giải pháp 1: Sử dụng từ điển
Phân tích độ phức tạp
class Solution:
def containsDuplicate[self, nums: List[int]] -> bool:
duplicates = {}
for i in nums:
if i in duplicates:
return True
else:
duplicates[i] = 1
return False
Phân tích độ phức tạp
- Giải pháp 2: Sử dụng tập hợp
- Kết quả khớp với """
Giải pháp 2: Sử dụng tập hợp
Phân tích độ phức tạp
class Solution:
def containsDuplicate[self, nums: List[int]] -> bool:
s = set[nums]
if len[s] == len[nums]:
return False
else:
return True
Phân tích độ phức tạp
class Solution {
public boolean containsDuplicate[int[] nums] {
HashSet set = new HashSet[];
for [int i:nums]{
set.add[i];
}
if [set.size[] == nums.length]{
return false;
} else {
return true;
}
}
}
Phân tích độ phức tạp
- Giải pháp 2: Sử dụng tập hợp
- Kết quả khớp với """
Giải pháp 2: Sử dụng tập hợp
Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.
Example 1:
Input: nums = [1,2,3,1]
Output: true
Example 2:
Input: nums = [1,2,3,4]
Output: false
Kết quả khớp với """
class Solution:
def containsDuplicate[self, nums: List[int]] -> bool:
nums.sort[]
for i in range[0,len[nums]-1]:
if nums[i] == nums[i+1]:
return True
return False
Không có kết quả phù hợp với """
Đưa ra một num mảng số nguyên, trả về true nếu bất kỳ giá trị nào xuất hiện ít nhất hai lần trong mảng và trả về sai nếu mọi phần tử là khác biệt.nums, return true if any value appears at least twice in the array, and return false if every element is distinct.
Những khó khăn:
Vấn đề này là một trong những vấn đề dễ dàng hơn để làm miễn là bạn hiểu các hashmap và cách sử dụng chúng cùng với các phương pháp của chúng bằng ngôn ngữ được tôn trọng của bạn. Để có được độ phức tạp thời gian O [n], bạn phải lặp qua mảng một lần và đặt khóa HashMap làm phần tử của mảng và giá trị của khóa đó làm chỉ mục. Nếu bạn muốn ép buộc nó để có được độ phức tạp về thời gian O [n²], bạn chỉ sử dụng các vòng lặp lồng nhau và kiểm tra cứng mọi giá trị so với các giá trị khác của mảng.
Đầu tiên, khai báo biến HashMap dưới dạng từ điển [Hashmap trong Python], sau đó bắt đầu lặp qua mảng. Sau đó, đối với mọi yếu tố trong kiểm tra mảng nếu giá trị đó đã là khóa trong hashmap và nếu nó là, hãy trả về true. Nếu nó là sai, thì hãy thêm khóa và giá trị mới đó vào HashMap. Nếu không có giá trị được trả về vào cuối vòng lặp, hãy trả về sai vì không được có giá trị xuất hiện hai lần trong mảng.
class Solution[object]:
def containsDuplicate[self, nums]:
"""
:type nums: List[int]
:rtype: bool
"""
if not nums:
return False
elif len[nums] == 1:
return False
else:
dup_dict = {}
for entries in nums:
if entries in dup_dict:
return True
else:
dup_dict[entries] = 1
return False