当前位置: 首页 > news >正文

LeetCode热题100刷题16:74. 搜索二维矩阵、33. 搜索旋转排序数组、153. 寻找旋转排序数组中的最小值、98. 验证二叉搜索树

74. 搜索二维矩阵

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int row = matrix.size();int col = matrix[0].size();for(int i=0;i<row;i++) {//先排除一下不存在的情况if(i>0&&matrix[i][0]>target && matrix[i-1][col-1]<target)return false;//锁定某一行之后使用二分查找if(matrix[i][0] <=target && matrix[i][col-1]>=target) {int begin=0,end=col-1;while(begin<=end) {int mid = begin + (end-begin)/2;if(matrix[i][mid] > target) {end = mid-1;}else if(matrix[i][mid] < target) {begin = mid+1;}if(matrix[i][mid]==target)return true;}}}return false;}
};

33. 搜索旋转排序数组

二分法,稍微区分了一下左侧有序还是右侧有序
在这里插入图片描述

class Solution {
public:int search(vector<int>& nums, int target) {if(nums.size()==0)return -1;if(nums.size()==1)return nums[0]==target?0:-1;int left = 0, right = nums.size()-1;while(left<=right) {int mid = left+(right-left)/2;if(nums[mid]==target)return mid;else if(nums[0] <= nums[mid]) {if(nums[0] <=target && target < nums[mid])right = mid-1;else left = mid+1;}else {if(nums[mid] <target && target <= nums[nums.size()-1]) left = mid+1;else right = mid-1;}}return -1;}
};

153. 寻找旋转排序数组中的最小值

在这里插入图片描述

class Solution {
public:int findMin(vector<int>& nums) {if(nums.size()==1)return nums[0];int n = nums.size()-1;int left = -1,right = n;int res = nums[0];if(nums[0] < nums[n])return res;while(left+1<right) {int mid = left+(right-left)/2;if(nums[mid] < nums.back())right = mid;elseleft = mid;}return nums[right];}
};

98. 验证二叉搜索树

通过中序遍历,得到有序的数组,在判断数组是否严格递增

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:void traversal(TreeNode* root,vector<int>& res) {if(root==NULL)return;if(root->left)traversal(root->left,res);res.push_back(root->val);if(root->right)traversal(root->right,res);}bool isValidBST(TreeNode* root) {if(!root)return true;vector<int> res;traversal(root,res);for(int i=1;i<res.size();i++) {if(res[i] <= res[i-1])return false;}return true;}
};

118. 杨辉三角

res即dp数组,寻找res[i][j]的更新规律

class Solution {
public:vector<vector<int>> generate(int numRows) {vector<vector<int>> res(numRows);for(int i=0;i<numRows;i++) {res[i].resize(i+1);res[i][0] = res[i][i] = 1;for(int j=1;j<i;j++) {res[i][j] = res[i-1][j]+res[i-1][j-1];}}return res;}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python学习笔记40:游戏篇之外星人入侵(一)
  • 【Linux】汇总TCP网络连接状态命令
  • 【Django】网上蛋糕商城后台-订单管理
  • Learning vtkjs之WarpScalar
  • HOW - 保证 WebSocket 持续正常连接
  • [解决方法]Request failed with status code 500错误之一
  • AI测试入门(1):认识AI大语言模型(LLM)
  • nodejs安装+踩坑报错解决
  • django报错(二):NotSupportedError:MySQL 8 or later is required (found 5.7.43)
  • Python 基础——列表(list)
  • Xcode如何创建多个工程
  • 提高Java程序效率:ImmutableList、Stream API 和 JSON序列化实战指南
  • 【保姆级】Python项目部署到Linux生产环境(uwsgi+python+flask+nginx服务器)
  • python编程技巧——list计算
  • 继承与多态 Java
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Java程序员幽默爆笑锦集
  • Laravel核心解读--Facades
  • leetcode46 Permutation 排列组合
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • React16时代,该用什么姿势写 React ?
  • Spring声明式事务管理之一:五大属性分析
  • Vim 折腾记
  • Web Storage相关
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 分布式熔断降级平台aegis
  • 官方解决所有 npm 全局安装权限问题
  • 如何在GitHub上创建个人博客
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 数据结构java版之冒泡排序及优化
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 提醒我喝水chrome插件开发指南
  • 通过几道题目学习二叉搜索树
  • 一个JAVA程序员成长之路分享
  • 原生 js 实现移动端 Touch 滑动反弹
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • "无招胜有招"nbsp;史上最全的互…
  • # Redis 入门到精通(七)-- redis 删除策略
  • ###STL(标准模板库)
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #QT(QCharts绘制曲线)
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $GOPATH/go.mod exists but should not goland
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (160)时序收敛--->(10)时序收敛十
  • (2.2w字)前端单元测试之Jest详解篇
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (回溯) LeetCode 131. 分割回文串
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (六)Hibernate的二级缓存
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (算法设计与分析)第一章算法概述-习题
  • (转)VC++中ondraw在什么时候调用的
  • (转)总结使用Unity 3D优化游戏运行性能的经验