力扣第53场双周赛题解

  • 题目
  • 思路与算法
  • 代码实现
  • 写在最后

题目

    1. 长度为三且各字符不同的子字符串
    1. 数组中最大数对和的最小值
    1. 矩阵中最大的三个菱形和

思路与算法

    1. 长度为三且各字符不同的子字符串:遍历查找符合条件的好子字符串,计数即可
    1. 数组中最大数对和的最小值:最大的数和最小的中和,排序后掐头去尾找最小值即可
    1. 矩阵中最大的三个菱形和:枚举不越界的菱形和即可,注意边界条件限制,以菱形的最高点进行扩展。

代码实现

  1. 长度为三且各字符不同的子字符串
class Solution {public:int countGoodSubstrings(string s) {if (s.length() < 3) {return 0;}int res = 0;for (int i = 0; i <= s.length() - 3; i++) {if (isGood(s.substr(i,3))) {res++;} }return res;}private:bool isGood(string s){int len = s.length();for (int i = 0; i < len - 1; ++i) {for (int j = i + 1; j < len; ++j) {if (s[i] == s[j]) {return false;}}}return true;}
};
  1. 数组中最大数对和的最小值
class Solution {public:int minPairSum(vector<int>& nums) {sort(nums.begin(),nums.end());int res = INT_MIN;for (int i = 0; i < nums.size() / 2 ; ++i) {res = max(res,nums[i] + nums[nums.size() - 1 - i]);}return res;}
};
  1. 矩阵中最大的三个菱形和
class Solution {public:vector<int> getBiggestThree(vector<vector<int>>& grid) {int m = grid.size();int n = grid[0].size();// 存放结果listvector<int> list;// 枚举每个顶部点(i,j)for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {list.push_back(grid[i][j]);// t为2倍的对角线长for (int t = 2;i + t < m && j + t/2 < n && j - t/2 >= 0; t += 2) {// 统计菱形顶部和底部的数字int tmp = grid[i][j] + grid[i + t][j];// 遍历边长,统计侧边数字for(int x = 1; x <= t / 2; x++){tmp += grid[i + x][j - x];tmp += grid[i + x][j + x];// 若未到达对角线那一行则依次累加上下对称点的值if(i + x != i + t - x){tmp += grid[i + t - x][j - x];tmp += grid[i + t - x][j + x];}}// 将结果加入结果队列list.push_back(tmp);}}}// 倒序排序枚举的所有结果sort(list.begin(), list.end(), greater<int>());unordered_set<int> s;vector<int> ans;for(int i = 0; i < list.size() && ans.size() < 3; i++){if(s.count(list[i])) continue;ans.push_back(list[i]);s.insert(list[i]);}return ans;}
};

写在最后

冲!

20210530:力扣第53场双周赛题解相关推荐

  1. 20220219:力扣第72场双周赛题解

    力扣第72场双周赛 题目 思路与算法 代码实现 写在最后 题目 统计数组中相等且可以被整除的数对 找到和为给定整数的三个连续整数 拆分成最多数目的偶整数之和 统计数组中好三元组数目 思路与算法 前三题 ...

  2. 20201023:力扣第37场双周赛(上)

    力扣第37场双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 删除某些元素后的数组均值 网络信号最好的坐标 思路与算法 第二题直接暴力就可以了,计算每个点的所有偏移量存入list,即以(0,0 ...

  3. 20200827:2020力扣第33周双周赛题解

    2020力扣第33周双周赛题解 题目一 示例 解题思路与代码实现 题目二 示例 解题思路与代码实现 题目三 解题思路与代码实现 题目四 示例 解题思路与代码实现 写在最后 题目一 题目一:千位分隔数 ...

  4. 20200727:力扣第31周双周赛题解

    力扣第31周双周赛题解 题目一:在区间范围内统计奇数数目 给你两个非负整数low和high,请你返回low和high之间(包含二者)奇数的数目 0 <= low <= high <= ...

  5. 以赛促练-力扣第85场双周赛以及第307场周赛

    文章目录 第85场双周赛 T3.字母移位II T4.删除操作后的最大子段和 第307场周赛 T2.最大回文数字 T3.感染二叉树需要的总时间 T4.找出数组的第K大和 第85场双周赛 T1直接暴力枚举 ...

  6. 力扣 第 87 场双周赛 ---心态爆炸场

    第 87 场双周赛 T1 - 模拟 class Solution {public:int q[13] = {0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, ...

  7. 力扣第 104 场双周赛 2681. 英雄的力量

    原题链接力扣 题目大意:我开始看成连续子段了,写了个递归程序....... 一个数组任选一个子序列,子序列的力量值=最大值平方*最小值.求所有子序列的力量和. 分析过程:如序列长度为n,子序列总数为2 ...

  8. 力扣第 107 场双周赛

    因为打abc打(。・∀・)ノ゙嗨了,忘记cf是10.05了,所以只能去力扣了 A.直接模拟,然后把用过的点记录下次别用就行 class Solution:def maximumNumberOfStri ...

  9. 20211201:力扣第268周双周赛(上)

    力扣第268周双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 两栋颜色不同且距离最远的房子 给植物浇水 思路与算法 双指针遍历即可,维护那个索引最大差值即可. 模拟题,正常情况需要每次走一步 ...

最新文章

  1. JSP中的九个内置对象
  2. 高并发编程-02-创建多线程的7种方式
  3. spring (四) SpringMVC的请求和响应
  4. 程序员面试金典 - 面试题 10.11. 峰与谷(排序/不排序)
  5. 从零开始学PowerShell(9)创建PowerShell对象
  6. Windows 8 中取消的功能特性
  7. 眼图matlab仿真_MATLAB开发自动驾驶第二十课-自动驾驶场景设计器中的预建驾驶场景...
  8. 瑞士军刀Netcat的使用方法
  9. 微分几何笔记(8) —— 切向量,切空间
  10. 黑莓装Linux系统,“黑莓的Linux桌面管理器”──Barry的使用
  11. win10系统解决office16的VBE6EXT.OLB不能被加载的问题
  12. 同步六进制加法计数电路设计(D触发器)
  13. 爱心的数学函数方程_笛卡尔心形线公式表白是什么?公式内容整理
  14. Serenity Screenplay模式
  15. mysql和myODBC安装和配置
  16. 【已解决】win10远程桌面连接报错:出现身份验证错误,要求的函数不受支持(CredSSP)
  17. php dwz,ThinkPHP+DWZ之DWZ自带编辑器图片上传
  18. Github:this exceeds GitHub‘s file size limit of 100.00 MB
  19. 完美解决:Chrome浏览器无法自动保存/填充密码
  20. 学习Accelerated C++1

热门文章

  1. 全球 JavaScript 开发者薪酬揭晓,你拖后腿了吗?
  2. 阿里技术副总裁贾扬清、微软 CTO 韦青重磅出席 AI 开发者大会!
  3. 程序员都该懂的 UML 规范!
  4. 漫画:什么是字符集和编码?ASCII、UTF-8、UTF-16、UTF-32 又是什么?
  5. Python 爬取 B 站数据分析,宋智孝李光洙谁最受中国粉丝喜爱
  6. 中兴解禁后的第 52 天,我们可能摆脱美国科技产品吗?
  7. 支付宝推生物识别;Google 爆重大隐私问题;TensorFlow 2.0 即将发布 | 极客头条
  8. 那些一心想要离开 BAT 的人,后来怎么样了?
  9. 什么是Redis缓存雪崩、缓存穿透和缓存击穿
  10. JAVA day16、17 数据结构(栈、队列、数组、链表、红黑树)