面试题 17.19. 消失的两个数字

代码实现

class Solution {public:vector<int> missingTwo(vector<int>& nums) {sort(nums.begin(), nums.end());bool flag1 = false;bool flag2 = false;int num1 = -1, num2 = -1;int n = nums.size();for (int i = 1; i <= n; i++) {// cout << nums[i - 1] << " " << i + flag1 + flag2 << endl;if (nums[i - 1] == i + flag1 + flag2) {continue;}else if (!flag1) {flag1 = true;num1 = i;if (flag1 + i == nums[i - 1]) continue;flag2 = true;num2 = i + 1;break;}else if (!flag2) {flag2 = true;num2 = nums[i - 1] - 1;}else break;}if (!flag1) num1 = n + 1;if (!flag2) num2 = n + 2;return {num1, num2};}
};

1016. 子串能表示从 1 到 N 数字的二进制串

代码实现(范围判断)

class Solution {public:bool queryString(string s, int n) {if (n >= 2048) return false;int i = n;int len = 0;while (i) {i >>= 1;len++;}set<int> cnt;for (int i = 0; i < s.size(); i++) {if (s[i] == '0') continue;int num = 1;cnt.emplace(num);for (int j = i + 1; j < i + len && j < s.size(); j++) {num <<= 1;num += (s[j] == '1');if (num <= n) cnt.emplace(num);}}return cnt.size() == n;}
};

2369. 检查数组是否存在有效划分

代码实现(dp)

class Solution {public:bool validPartition(vector<int>& nums) {int n = nums.size();vector<vector<bool>> dp(3, vector<bool>(n));if (nums[0] == nums[1]) dp[0][1] = true;if (n > 2 && nums[0] == nums[1] && nums[1] == nums[2]) dp[1][2] = true;if (n > 2 && nums[0] == nums[1] - 1 && nums[1] == nums[2] - 1) dp[2][2] = true;for (int i = 3; i < n; i++) {if (nums[i] == nums[i - 1]) {dp[0][i] = dp[0][i - 2] || dp[1][i - 2] || dp[2][i - 2];}if (nums[i] == nums[i - 1] && nums[i - 1] == nums[i - 2]) {dp[1][i] = dp[0][i - 3] || dp[1][i - 3] || dp[2][i - 3];}if (nums[i] == nums[i - 1] + 1 && nums[i - 1] == nums[i - 2] + 1) {dp[2][i] = dp[0][i - 3] || dp[1][i - 3] || dp[2][i - 3];}}return dp[0][n - 1] || dp[1][n - 1] || dp[2][n - 1];}
};

365天挑战LeetCode1000题——Day 096 消失的两个数字 子串能表示从 1 到 N 数字的二进制串 检查数组是否存在有效划分相关推荐

  1. 365天挑战LeetCode1000题——Day 097 神策专场: 判定是否互为字符重排 按身高排序 按位与最大的最长子数组 找到所有好下标 好路径的数目

    面试题 01.02. 判定是否互为字符重排 代码实现(排序) class Solution {public:bool CheckPermutation(string s1, string s2) {s ...

  2. 365天挑战LeetCode1000题——Day 126 单调栈模板 500题纪念

    用时126天,完成500题,平均4题/天,照这个速率,我还需要四个月完成1000题挑战. 单调栈模板 class Solution {public:vector<int> nextGrea ...

  3. 365天挑战LeetCode1000题——Day 260 800题

    时过但境还没迁,一晃眼过去了4个月,在同样的位置发了博客. 今天完成了第八百道题,然后距离我的365天千题计划,还剩下100天左右,每天再保持两题的刷题量,就能完成我一年前定下的目标了.这也再次证明了 ...

  4. 365天挑战LeetCode1000题——Day 014 每日一题 + 最长公共子序列

    文章目录 1. [我能赢吗](https://leetcode.cn/problems/can-i-win/) 1.1 记忆化搜索+DFS+位运算 2. [最长公共子序列](https://leetc ...

  5. 365天挑战LeetCode1000题——Day 012 每日一题

    文章目录 前言 1. [寻找右区间](https://leetcode.cn/problems/find-right-interval/) 1.1 二分查找 总结 前言 今天还是一题,但是重新学习了快 ...

  6. 365天挑战LeetCode1000题——Day 103 400题 检查二进制字符串字段 最大子序列交替和 最低票价 K 站中转内最便宜的航班

    400题,用时103天,平均3.88题/天,预计154天,也就是5个月后完成目标 1784. 检查二进制字符串字段 代码实现(模拟) class Solution {public:bool check ...

  7. 365天挑战LeetCode1000题——Day 124 单调队列模板

    单调队列模板 class MaxQueue {private:queue<int> origin;deque<int> dq; public:MaxQueue() {}int ...

  8. 365天挑战LeetCode1000题——Day 154 Knight

    154天,12次竞赛,573道题目,拿到了knight. 算是到了新的一个阶段吧,正好接下来四周应该都打不了了,因为周末有实验课. 每日一题 class Solution {public:int nu ...

  9. 365天挑战LeetCode1000题——Day 116 第315场周赛 「中国银联 力扣」

    6204. 与对应负数同时存在的最大正整数 代码实现 class Solution {public:int findMaxK(vector<int>& nums) {sort(nu ...

最新文章

  1. 【转】 一些NET的实用类,不错
  2. 用WINHEX合并两个或多个BIN文件
  3. POJ 2315:Football Game(博弈论)
  4. Hadoop3 Hive Spark完整安装与实践
  5. c语言提示错误信息,【资料】C语言错误信息中文解释
  6. python绘制彩色地震剖面_在地图上绘制饼图时“爆炸”楔形图(Python,matplotlib)...
  7. Go语言:基础数据类型
  8. delete postman 传参_Postman高级应用——串行传参和动态传参详解
  9. Android中 dip 和 px 的关系
  10. Gululu互动水杯进驻英国皇家玩具品牌Hamleys 践行全球布局战略
  11. 多元线性回归预测:餐馆营业额与多因素实战
  12. 统计学三种相关系数【pearson、spearman、kendall】
  13. Bitwise Exclusive-OR Sequence
  14. 21天学习之二(Android 10.0 SystemUI默认去掉底部导航栏的三种方法)
  15. 同事写了一个责任链模式,bug无数...
  16. 编程实现在Linux系统中Intel CPU功耗的获取
  17. b站pink老师JavaScript的jQuery 案例代码——电梯导航案例
  18. Oracle的软件产品是用什么开发出来的
  19. c语言正方形和三角形面积,【c语言】计算长方形,三角形和圆形的面积,根据用户的选择求不同形状的面积。...
  20. 《哲学史讲演录》——思辨节选---芝诺(一)

热门文章

  1. 可以在Facebook Marketplace 上面买亚马逊雨林?
  2. NOIP2014 寻找道路
  3. 大学毕业5年后拉开大家差距的原因
  4. Linux中fork()系统调用创建两个子进程
  5. 网上书城项目的书籍分类列表展示及新书上架和热销书籍效果展示功能(项目进度四)
  6. 诺基亚英雄迟暮:抗拒Android或难挽颓势
  7. 山东省地震局2008年事业单位公开招聘工作人员公告
  8. Xkeyideal赐教取经之路
  9. 用求阶乘的函数fact(),编程计算1!+2!+3!......+n!的值
  10. java spark 主成分分析算法(pca)