第 200 场周赛 Posted on 2020-08-03 | In leetcode , Weekly-Contest | | Words count in article: 546 | Reading time ≈ 2 1534. 统计好三元组1234567891011121314151617class Solution {public: int countGoodTriplets(vector<int>& arr, int a, int b, int c) { int nCount = 0,nSize = arr.size(); for(int i = 0; i < nSize - 2;++i){ for(int j =i+1;j<nSize -1 ;++j){ for(int k = j+1;k<nSize;k++){ if(abs(arr[i] - arr[j])<=a && abs(arr[j] - arr[k])<=b && abs(arr[i]-arr[k])<=c){ nCount ++; } } } } return nCount; }}; 1535. 找出数组游戏的赢家12345678910111213141516class Solution {public: int getWinner(vector<int>& arr, int k) { int n = arr.size(), i = 1, ans = arr[0], t=k; while(t-- && i < n)//模拟k次 { if(ans < arr[i])//碰见比我大的 { ans = arr[i];//更改答案 t = k-1;//该大数,还要模拟k-1次 } i++; } return ans; }}; 1536. 排布二进制网格的最少交换次数123456789101112131415161718192021222324252627282930313233343536class Solution {public: int minSwaps(vector<vector<int>>& grid) { int n = grid.size(); //网格规模 vector<int> a; //记录每一行后缀0个数的数组 for(int i = 0; i < n; i++) { int count = 0; for(int j = n - 1; j >= 0; j--) { if(grid[i][j] == 0) count++; //数每一行的后缀0 else break; } a.push_back(count); } int count = 0; //交换次数 for(int i = 0; i < n - 1; i++) { if(a[i] >= n - i - 1) continue;//满足条件,该行直接跳过 else{//不满足条件 int j = i; //用新参数遍历找满足条件的后缀0 for(; j < n; j++) { if(a[j] >= n - i - 1) break; } if(j == n) return -1; //找不到,直接返回-1 for(; j > i; j--) //找到了最先满足条件的后缀0个数 { swap(a[j], a[j - 1]); //每一行交换上去 count++; //记录交换次数 } } } return count; }}; 1537. 最大得分1234567891011121314151617181920212223242526272829303132333435class Solution {public: int maxSum(vector<int>& nums1, vector<int>& nums2) { long sum1 = 0, sum2 = 0; long res = 0; int i = 0, j = 0; while(i < nums1.size() && j < nums2.size()){ if(nums1[i] == nums2[j]){ res += (max(sum1, sum2) + nums1[i]); sum1 = 0; sum2 = 0; i++; j++; } else if(nums1[i] < nums2[j]){ sum1 += nums1[i]; i++; } else{ sum2 += nums2[j]; j++; } } while(i < nums1.size()){ sum1 += nums1[i]; i++; } while(j < nums2.size()){ sum2 += nums2[j]; j++; } res += max(sum1, sum2); return res % ((int)pow(10, 9) + 7 ); }}; Donate? comment? Donate WeChat Pay Alipay