一網友發文稱面試了一家小公司,目前公司是20k,期望薪資是25k,hr說可以,入職後還可以做前端leader,結果過了兩天談薪的時候老板決定給開15k。
這簡直就是侮辱人,985碩士五年工作經驗,還要做前端leader,就給15k,leader才給15k,手下的帶的難道都是一群應屆畢業生?啥牛馬公司都有。
--------------下面是今天的演算法題--------------
來看下今天的演算法題,這題是LeetCode的第217題:存在重復元素。
問題描述
來源:LeetCode第217題
難度:簡單
給你一個整數陣列 nums 。如果任一值在陣列中出現至少兩次 ,返回 true ;如果陣列中每個元素互不相同,返回 false 。
範例1:
輸入 :nums = [1,2,3,1]
輸出 :true
範例2:
輸入 :nums = [1,2,3,4]
輸出 :false
1 <= nums.length <= 10^5
-10^9 <= nums[i] <= 10^9
問題分析
這題讓判斷陣列中是否有重復的元素,很簡單的一道題,可以使用set集合判重,把陣列中的元素一個個放到集合set中,存放的時候如果有重復的直接返回true。
JAVA:
publicbooleancontainsDuplicate(int[] nums){
Set<Integer> st = new HashSet<>();
for (int num : nums)
if (!st.add(num))// 有重復的直接返回true
returntrue;
returnfalse;
}
C++:
public:
boolcontainsDuplicate(vector<int> &nums){
unordered_set<int> s;
for (constauto &num: nums)
if (!s.insert(num).second)// 有重復的直接返回true
returntrue;
returnfalse;
}
Python:
defcontainsDuplicate(self, nums: List[int]) -> bool:
s = set()
for num in nums:
if num in s: # 有重復的直接返回true
returnTrue
s.add(num)
returnFalse