LeetCode热题100刷题16:74. 搜索二维矩阵、33. 搜索旋转排序数组、153. 寻找旋转排序数组中的最小值、98. 验证二叉搜索树
创始人
2025-01-09 14:05:30
0

74. 搜索二维矩阵

class Solution { public:     bool searchMatrix(vector>& matrix, int target) {         int row = matrix.size();         int col = matrix[0].size();          for(int i=0;i             //先排除一下不存在的情况             if(i>0&&matrix[i][0]>target && matrix[i-1][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& 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] 

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

在这里插入图片描述

class Solution { public:     int findMin(vector& 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             int mid = left+(right-left)/2;             if(nums[mid] < nums.back())                 right = mid;             else                 left = 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& 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 res;         traversal(root,res);         for(int i=1;i             if(res[i] <= res[i-1])                 return false;         }         return true;     } }; 

118. 杨辉三角

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

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

相关内容

热门资讯

重大发现《wpK辅助透视》太坑... 重大发现《wpK辅助透视》太坑了果然确实是有挂(有挂方式)重大发现《wpK辅助透视》太坑了果然确实是...
5分钟了解!WPK科技(Wpk... 5分钟了解!WPK科技(Wpk)透视辅助!(辅助透视)详细教程(2022已更新)(哔哩哔哩)是一款可...
解密关于Wepoke专用软件透... 解密关于Wepoke专用软件透明挂!太夸张了原来是真的有挂的(有挂分析)(哔哩哔哩)是一款可以让一直...
AI智能体研发之路-模型篇(一... 博客导读:《AI—工程篇》AI智能体研发之路-工程篇(一)...
【DevOps】运维过程中经常... 一、解决HTTP 408错误:上传3M文件时请求超时的问题在开发Web应用程序时&#x...
基于ensp校园网络(完整文档... 大家好,我是小华学长,一名计算机领域的博主。经过多年的学习和实践...
黑科技攻略《Wepoke科技》... 黑科技攻略《Wepoke科技》软件透明挂!(透明挂)软件模拟器(2021已更新)(哔哩哔哩)是一款可...
科普常识!(wpk代打)透视辅... 大家肯定在之前wpk或者wpk中玩过科普常识!(wpk代打)透视辅助!(透视)外挂辅助模拟器(202...
新版2024教程《WPk辅助透... 您好,这款游戏可以开挂的,确实是有挂的,需要了解加微【439369440】很多玩家在这款游戏中打牌都...
Win11安装Ubuntu20... Win11安装Ubuntu20.04双系统(保姆教程 - 更新至2024.02...