當前位置: 妍妍網 > 碼農

高攀不起的笛子,只要本碩211。

2024-10-13碼農

比亞迪在武漢理工大學宣講的時候,一網友因為沒被排上面試,後來透過詢問才知道,比亞迪在篩選簡歷的時候會卡211,要求 本碩都必須是211 ,。而該網友只有碩士是211,本科不是,所以沒有被安排面試。

20年前能上個本科就可以了,10年前讀個碩士也能找到好工作,現在就是碩士也不好使,還要求211以上,並且本科也要211以上,學歷貶值確實很厲害,無非就是人多,有挑的資本,網友評論到:給他臉了 。


--------------下面是今天的演算法題--------------

來看下今天的演算法題,這題是LeetCode的第349題:兩個陣列的交集。

問題描述


來源:LeetCode第349題

難度:簡單

給定兩個陣列 nums1 和 nums2 ,返回它們的交集。輸出結果中的每個元素一定是唯一 的。我們可以不考慮輸出結果的順序 。

範例1:

輸入 :nums1 = [1,2,2,1], nums2 = [2,2]

輸出 :[2]

範例2:

輸入 :nums1 = [4,9,5], nums2 = [9,4,9,8,4]

輸出 :[9,4]

解釋 :[4,9] 也是可透過的

  • 1 <= nums1.length, nums2.length <= 1000

  • 0 <= nums1[i], nums2[i] <= 1000

  • 問題分析


    這題是讓計算兩個陣列的交集,可以把其中一個陣列nums1中的元素全部儲存到集合set中,然後遍歷另一個陣列nums2,尋找 nums2中的元素是否也存在集合set中,如果存在,說明該元素是這兩個陣列的交集。

    JAVA:

    publicint[] interp(int[] nums1, int[] nums2) {
    Set<Integer> st = new HashSet<>();
    for (int num : nums1)
    st.add(num);
    Set<Integer> intersect = new HashSet<>();// 儲存交集
    for (int num : nums2)
    if (st.contains(num))
    intersect.add(num);
    // 把set轉陣列並返回
    return intersect.stream().mapToInt(Integer::intValue).toArray();
    }

    C++:

    public:
    vector<intinterp(vector<int> &nums1, vector<int> &nums2){
    unordered_set<intst(nums1.begin(), nums1.end())// 儲存第一個陣列的元素
    unordered_set<int> intersect; // 儲存交集
    for (int num: nums2)
    if (st.find(num) != st.end())
    intersect.insert(num);
    returnvector<int>(intersect.begin(), intersect.end());
    }

    Python:

    definterp(self, nums1: List[int], nums2: List[int]) -> List[int]:
    st = set(nums1) # 將nums1轉換為集合
    # 儲存交集
    intersect = set()
    # 遍歷nums2,如果元素在st中,則添加到交集集合
    for num in nums2:
    if num in st:
    intersect.add(num)
    # 將集合轉換為列表並返回
    return list(intersect)