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;}
};
相关文章:
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 i0;i<row;i) {//先排除一下不存在的情况if(i>0&&matrix[i][0]>target…...
C++仿函数
在C中,我们经常需要对类中的元素进行比较,例如在排序、查找等操作中。为了使类更加灵活,我们可以通过自定义比较函数来实现不同的比较方式。在本文中,我们将探讨如何在类中使用仿函数和 Lambda 表达式来定义自定义比较函数。 1. …...
文献阅读:tidyomics 生态系统:增强组学数据分析
文献介绍 文献题目: The tidyomics ecosystem: enhancing omic data analyses 研究团队: Stefano Mangiola(澳大利亚沃尔特和伊丽莎霍尔医学研究所)、Michael I. Love(美国北卡罗来纳大学教堂山分校)、Ant…...
MySQL运维实战之Clone插件(10.1)使用Clone插件
作者:俊达 clone插件介绍 mysql 8.0.17版本引入了clone插件。使用clone插件可以对本地l或远程的mysql实例进行clone操作。clone插件会拷贝innodb存储引擎表,clone得到的是原数据库的一个一致性的快照,可以使用该快照数据来启动新的实例。cl…...
【系统架构设计】数据库系统(三)
数据库系统(三) 数据库模式与范式数据库设计备份与恢复分布式数据库系统分布式数据库的概念特点分类目标 分布式数据库的架构分布式数据库系统与并行数据库系统 数据仓库数据挖掘NoSQL大数据 数据库模式与范式 数据库设计 备份与恢复 分布式数据库系统…...
免费视频批量横版转竖版
简介 视频处理器 v1.3 是一款由是貔貅呀开发的视频编辑和处理工具,提供高效便捷的视频批量横转竖,主要功能: 导入与删除文件:轻松导入多个视频文件,删除不必要的文件。暂停与继续处理:随时暂停和继续处理。…...
内存管理(知识点)
c语言与c对于内存管理的区别 c语言中动态内存管理方式 malloc\calloc\realloc\free c内存管理方式 c兼容c语言所以c语言中的方式也可以使用 但是用起来太麻烦 所以通过new和delete操作符竞选动态内存管理 单个对象 c语言: int* p2(int*)malloc(sizeof(int)) c : int*p3 new…...
【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【29】Sentinel
持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【29】Sentinel 简介熔断降级什么是熔断什么是降级相同点不同点 整合Sentinel自定义sentinel流控返回数据使用Sentinel来保护feign远程调用自定义资源给网关整合Sentinel参考 简介 熔断降…...
防范UDP Flood攻击的策略与实践
UDP Flood攻击是一种常见的分布式拒绝服务(DDoS)攻击手段,通过向目标服务器发送大量无效的UDP数据包,消耗其网络带宽和处理资源,最终导致合法的网络服务无法正常运行。本文将深入探讨UDP Flood攻击的原理、常见的防御策…...
昇思25天学习打卡营第17天 | CycleGAN图像风格迁移互换
通过深入学习CycleGAN模型,我对无监督图像到图像的转换技术有了更深的理解。CycleGAN不仅能在没有成对训练样本的情况下实现域之间的转换,而且在保持内容结构的同时成功转换图像风格,这在许多应用中都非常有用,如艺术风格转换、季…...
Leetcode 2520. 统计能整除数字的位数
问题描述: 给你一个整数 num ,返回 num 中能整除 num 的数位的数目。 如果满足 nums % val 0 ,则认为整数 val 可以整除 nums 。 示例 1: 输入:num 7 输出:1 解释:7 被自己整除࿰…...
WEB前端08-综合案例(动态表格)
使用 HTML、CSS 和 JavaScript 创建动态表格 在本教程中,我们将创建一个动态表格,允许用户添加行、选择项目,并执行批量操作,如全选或删除选中的行。我们将通过 HTML、CSS 和 JavaScript 来实现这一功能。让我们逐步了解每个部分…...
【面试题】Redo log和Undo log
Redo log 介绍Redo log之前我们需要了解一下,mysql数据操作的流程: 上述就是数据操作的流程图,可以发现sql语句并不是直接操作的磁盘而是通过操作内存,然后进行内存到磁盘的一个同步。这里我们必须要了解一些区域: 缓…...
开发实战经验分享:互联网医院系统源码与在线问诊APP搭建
作为一名软件开发者,笔者有幸参与了多个互联网医院系统的开发项目,并在此过程中积累了丰富的实战经验。本文将结合我的开发经验,分享互联网医院系统源码的设计与在线问诊APP的搭建过程。 一、需求分析 在开发任何系统之前,首先要…...
springboot系列教程(十六):配置Actuator组件,实现系统监控
一、Actuator简介 1、监控组件作用 在生产环境中,需要实时或定期监控服务的可用性。Spring Boot的actuator(健康监控)功能提供了很多监控所需的接口,可以对应用系统进行配置查看、相关功能统计等。 2、监控分类 Actuator 提供…...
单臂路由组网实验,单臂路由的定义、适用情况、作用
一、定义 单臂路由是指通过在路由器的一个接口上配置许多子接口,从而实现原来相互隔离的不同VLAN之间的互通。 子接口:把路由器上的实际的物理接口划分为多个逻辑上的接口,这些被划分的逻辑接口就是子接口。 二、适用情况 用在没有三层交换机,却要实现不同VLAN之间的互…...
【数据结构初阶】顺序表三道经典算法题(详解+图例)
Hello!很高兴又见到你了~~~ 看看今天要学点什么来充实大脑吧—— 目录 1、移除元素 【思路图解】 【总结】 2、删除有序数组中的重复项 【思路图解】 【总结】 3、合并两个有序数组 【思路图解】 【总结】 至此结束,Show Time! 1、…...
SpringBoot接入JPA连接数据库H2或MySQL例子
一,JPA相关的常用注解和对象 Entity,用于实体类声明语句之前,指出该Java类为实体类,将映射到指定的数据库表;Table,当实体类与其映射的数据库表名不同名时需要使用。该标注与Entity标注并列使用&…...
持续集成05--Gogs的安装与使用
前言 在持续集成/持续部署(CI/CD)的旅程中,版本控制系统是不可或缺的一环。当我们在使用jenkins,想要达到测试脚本有更新,就让项目自动去进行构建,或者当开发脚本有更新,也可以自动去构建的效果…...
C++--fill
把[first,last)之间的元素填充为val。 template<class ForwardIterator, class Type> void fill( ForwardIterator first, //起始迭代器 ForwardIterator last, //结束迭代器 const Type& val //设置的值 );源码剖析 template<class ForwardIterator, c…...
Java:对比一个对象更新前后具体被修改了哪些值
Java:对比一个对象更新前后具体被修改了哪些值 Zyyyyu 的个人博客 遇到一个需求就是要记录每行数据被修改更新后,要记录下当前值和修改前的值 那有人就会说写个if去判断值是否被修改了,然后记录下来不就行了,这是一个思路&#x…...
GO——GMP 好文整理
GMP相关好文推荐: Golang 调度器设计思想、GMP 协程调度模型详解 Golang的协程调度器原理及GMP设计思想 Golang调度器GMP原理与调度全分析...
园区AR导航系统构建详解:从三维地图构建到AR融合导航的实现
随着现代园区规模的不断扩大与功能的日益复杂,传统的二维地图导航已难以满足访客高效、精准定位的需求。园区内部错综复杂的布局、频繁变更的商户位置常常让访客感到迷茫,造成寻路上的时间浪费。园区AR导航系统以创新的技术手段,破解了私域地…...
接口测试总结(非标准)
为什么要做接口测试? 答:接口测试是为了检测系统组件间接口的正确性和稳定性,以及检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。接口测试可以帮助我们发现系统中的潜在问题,确保系统的稳定性…...
在Ubuntu 18.04上安装和使用Composer的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 介绍 Composer 是一个流行的 PHP 依赖管理工具,主要用于简化项目依赖项的安装和更新。它会检查特定项目依赖的其他软件包&a…...
ssm 学习 ---(spring)
一、spring框架 1、基本框架 2、Beanfactory快速入门 配置清单:xml文件 (1) 导入jar包或者maven坐标 (2) 定义UserService接口以及UserService实现类 (3) 创建bean.xml配置文件,将UserService信息配置到该xml文件中; (4)编写测试代码,创…...
Jupyter Notebook安装及基本使用
Jupyter Notebook安装及基本使用 目录 Jupyter Notebook安装及基本使用方式一:Anaconda直接安装方式二:pip命令安装Jupyter使用虚拟环境 方式一:Anaconda直接安装 安装Anaconda 下载地址,输入邮箱,Windows下载 开始安…...
Jenkins+Maven+Gitlab+Tomcat自动化构建打包+部署
目录 环境准备 导入项目包 配置jenkins 构建项目 配置项目上线 修改项目代码测试 环境准备 本实操项目环境基于https://blog.csdn.net/Lzcsfg/article/details/140359830 首先在node01主机中操作,本次操作需要java8的版本,将之前安装的java17卸…...
Synchronized升级到重量级锁会发生什么?
我们从网上看到很多,升级到重量锁的时候不会降级,再来线程都是重量级锁 今天我们来实验一把真的是这样的吗 1.首选导入Java对象内存布局的工具库: <dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-…...
【Webpack】HMR 热更新
HMR全称Hot Module Replacement,可以理解为模块热替换,指在应用程序运行过程中,替换、添加、删除模块,而无需重新刷新整个应用。 不使用热更新,我们在应用运行过程中修改了某个模块,通过自动刷新会导致整个…...
有什么做网站的公司/全国免费发布信息平台
闭包是什么,作用? 函数可以访问其外部定义的变量,但是函数内部对该变量进行的修改,在函数外是不可见的,即对函数作用域外变量不会产生影响。 比如一个人在美国,办了美国国籍,然后回到中国&…...
深圳福田高端网站建设/中国新闻今日头条
LAMP搭建和配置 LAMP是由Linux, Apache, MySQL, PHP组成的,即把Apache、MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言。Apache是最常用的Web服务软件,而MySQL是比较小型的数据库软件。…...
南阳网站建设多少钱/百度搜索广告怎么投放
前言 上一篇文章:➣SpringCloud Alibaba之Seata入门以及踩坑(一)老顾介绍了seata相关的准备工作,以及版本的选择;今天老顾就来介绍一下seata的使用。以及在使用过程中遇到的问题。 案例背景 今天老顾介绍的案例场景也…...
网站建设费和网站维护费的区别/珠海企业网站建设
sdown和odown转换机制 sdown和odown两种失败状态 sdown是主观宕机,就一个哨兵如果自己觉得一个master宕机了,那么就是主观宕机 odown是客观宕机,如果quorum数量的哨兵都觉得一个master宕机了,那么就是客观宕机 sdown达成的条件很简…...
简约网站模版/百度搜索引擎怎么做
simhash学习过程中的笔记 文档如果直接使用MD5做hash这种方式进行去重操作,对于一些相似文档的处理就无能为力了,简单的一个字符的变化,hash值就会发生变化,Simhash简单来说就是类似文档所产生的hash值也是类似的,这样…...
怎样做旅游网站/美国今天刚刚发生的新闻
IO的分类 IO IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 IO流的简单分类 按照流的流向分,可以分为输入流和输出流;按照操作单元划分,可以划分为字节流和字符流;按照流的角色划分为节点…...