tags: Weekly Contest

Weekly Contest 412

3264. Final Array State After K Multiplication Operations I (Easy)

限制 :

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100
  • 1 <= k <= 10
  • 1 <= multiplier <= 5

時間複雜度:
O(N2)

空間複雜度:
O(1)

程式碼:
這題要在 list 當中找最小的值,之後對這個值 * multiplier。重複 k 次。
暴力法就是直接重複 k 次就對了。

class Solution { public: vector<int> getFinalState(vector<int>& nums, int k, int multiplier) { for(int i=0;i<k;i++) { int min_value = INT_MAX, index = 0; for(int i=0;i<nums.size();i++) { if(min_value > nums[i]) { index = i; min_value = nums[i]; } } nums[index] = multiplier* nums[index]; } return nums; } };

3265. Count Almost Equal Pairs I (Medium)

限制 :

  • 2 <= nums.length <= 100
  • 1 <= nums[i] <= 106

時間複雜度:
O(N2)

空間複雜度:
O(1)

程式碼:

class Solution { public: bool isEqual(int num1, int num2) { string str1, str2; stringstream ch1, ch2; ch1 << num1; ch1 >> str1; ch2 << num2; ch2 >> str2; str1 = string(max(str1.size(), str2.size()) - str1.size(), '0') + str1; str2 = string(max(str1.size(), str2.size()) - str2.size(), '0') + str2; int diff = 0; char diff_record[4] = {}; for (int i = 0; i < str2.size(); i++) { if (str1[i] != str2[i]) { if (diff >= 2) return false; diff_record[diff] = str1[i]; diff_record[diff + 2] = str2[i]; diff++; } } if (diff_record[0] != diff_record[3] || diff_record[1] != diff_record[2]) return false; return true; } int countPairs(vector<int>& nums) { int result = 0; for (int i = 0; i < nums.size(); i++) { for (int j = i + 1; j < nums.size(); j++) { result += isEqual(nums[i], nums[j]); } } return result; } };

3(Medium)

限制 :

  • 104

時間複雜度:
O()

空間複雜度:
O()

程式碼:

4(Hard)

限制 :

  • 104

時間複雜度:
O()

空間複雜度:
O()

程式碼: