代码随想录——数组 刷题记录

二分查找

704.二分查找

  • 注意while循环条件low<=high
  • 修改完low和high值之后别忘记修改mid

35.搜索插入位置

  • 注意插入为最大最小的判断

34.在排序数组中查找元素的第一个和最后一个位置

  • 二分查找到target之后往左右分别查找边界

69.x的平方根

  • mid*mid过大需要long强制类型转换
  • mid*mid <= x时候ans=mid保证下取整

367.有效的完全平方数

  • 二分查找

双指针

27.移除元素

  • 相向双指针,把右侧不等于target的值交换到左侧target值的位置

26.删除有序数组中的重复项

  • 单向双指针,重复项时high指针++,不重复时high赋值给low,然后low++

283.移动零

  • 单向双指针

844.比较含退格的字符串

  • 字符串转数组
char[] charS = s.toCharArray();
  • 单向双指针,退格时low–

977.有序数组的平方

  • 相向双指针,把左右平方较大的放在新数组的最后一个空位

滑动窗口

209.长度最小的子数组

  • 先移动righ到sum大于target,然后移动left直到sum小于target,记录每次最小的子数组长度

核心代码:

// Integer.MAX_VALUE表示Java中任何整数变量的最大可能值
int result = Integer.MAX_VALUE;for (int right=0; right<nums.length; right++) {sum += nums[right];while (sum >= target) {result = Math.min(result, right-left+1);sum -= nums[left++]; // 变更子序列的起始位置,从前往后移动起始位置}
}

904.水果成篮

  • 利用哈希表

哈希表用法:

// 创建
Map<Integer, Integer> cnt = new HashMap<Integer, Integer>();
// 添加
// getOrDefault方法:返回指定key(fruits[right])对应的value,否则返回默认值0
cnt.put(fruits[right], cnt.getOrDefault(fruits[right], 0)+1);
// 删除
cnt.remove(fruits[left]);
// 大小
cnt.size()

76.最小覆盖子串

  • 判断哈希表包含关系
public boolean isCntContainT(HashMap<Character, Integer> cnt, HashMap<Character, Integer> t) {boolean ans = true;// 按key遍历for (char key : t.keySet()) {if(cnt.get(key) == null || cnt.get(key) < t.get(key)){ans = false;}}return ans;
}
  • 子串(左含右不含)
ans = s.substring(start, end+1);

螺旋矩阵

59.螺旋矩阵II

54.螺旋矩阵

LCR 146.螺旋遍历二维数组

  • 二维数组获取长a宽b
int a = array.length;
int b = array[0].length;
  • 可以根据循环圈数circle确定边界位置(注意最后一个while中x>circle)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/223194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何解决Windows 11黑屏的问题,让电脑“重见光明”

本页介绍了经过测试并证明有效的常见Windows 11黑屏故障的所有修复程序。 本页上的提示和解决方案适用于所有Windows 11设备,从台式电脑和笔记本电脑到微软的Surface二合一设备。 是什么导致Windows 11黑屏死机 在使用Windows 11时,显示器或屏幕明显关闭,通常被称为Window…

「Verilog学习笔记」单端口RAM

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1nsmodule RAM_1port(input clk,input rst,input enb,input [6:0]addr,input [3:0]w_data,output wire [3:0]r_data ); //*************code***********//re…

21. 常用shell之 chmod - 更改文件权限 的用法和衍生用法

chmod 是一个在 Unix 和类 Unix 系统&#xff08;如 Linux 和 macOS&#xff09;中用于更改文件或目录权限的命令。理解 chmod 的基本用法和衍生用法对于管理系统文件和保护数据安全非常重要。 基本用法 在 Unix 和类 Unix 系统中&#xff0c;文件和目录的访问权限被分为三类…

英语六级翻译

1. 青海是中国西北部的一个省份,平均海拔 3000 以上,大部分地区为高山和高原。青海省得名全国最大的咸水湖青海湖。青海湖被誉为“中国最美的湖泊”,是最受欢迎的旅游景点之一,也是摄影师和艺术家的天堂。 青海山川壮丽,地大物博。石油和天然气储量丰富,省内许多城市的…

【ArcGIS Pro微课1000例】0052:基于SQL Server创建企业级地理数据库案例

文章目录 环境搭建创建企业级数据库连接企业级数据库环境搭建 ArcGIS:ArcGIS Pro 3.0.1Server.ecp:版本为10.7SQL Server:版本为SQL Server Developer 2019创建企业级数据库 企业级地理数据库的创建需要通过工具箱来实现。工具位于:数据管理工具→地理数据库管理→创建企业…

亚马逊云科技AI应用 SageMaker 新突破,机器学习优势显著

&#xff08;声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区、知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道&#xff09; Amazon SageMaker是一种机器学习服务&#xff0c;帮助开发人员快速…

FFmpeg 安装配置

FFmpeg 安装配置 依赖包 sudo apt-get install -y autoconf automake bzip2 cmake freetype-devel gcc gcc-c git libtool make mercurial pkgconfig zlib-devel x264-develsudo apt-get install yasm -y安装 wget https://ffmpeg.org/releases/ffmpeg-4.2.3.tar.bz2tar -…

VS2022 将项目打包,导出为exe运行

我有一个在 VS2022 上开发的程序&#xff0c;基于.net 6框架, 想打包成 .exe程序&#xff0c;以在另一个没有安装VS的机器上运行&#xff0c;另一个机器是Win7系统&#xff0c;上面安装了.net 6框架。 虽然网上很多教程&#xff0c;需要安装Project Installer&#xff0c;配置A…

weston 1: 编译与运行傻瓜教程(补充)

系统kubuntu23.10 git clone https://gitlab.freedesktop.org/wayland/wayland.git 86588fbdebe7f6ac9363d98f524e4ae14bd4b019 meson build/ --prefix$WLD ninja -C build/ install git clone https://gitlab.freedesktop.org/wayland/wayland-protocols.git c4f559866f13…

FL Studio21.0.3.3517官方完整版下载步骤教程

FL Studio 21.0.3.3517 Producer Edition 全称Fruity Loops Studio 21 Producer Edition &#xff0c;就是大家熟悉的水果编曲软件&#xff0c;一个全能的音乐制作软件&#xff0c;包括编曲、录音、剪辑和混音等诸多功能&#xff0c;让你的电脑编程一个全能的录音室。FL Studio…

如何处理好面试中的“压力测试”?

作为一名求职者&#xff0c;在面试时有时遇到的是压力测试&#xff0c;有时则遇到的是一些无良企业单位&#xff0c;究竟如何把握忍耐的限度&#xff0c;才合格当一个能经受压力的员工&#xff0c;才能避免对无良单位的一味隐忍! 压力面试是指有意制造紧张&#xff0c;以了解求…

BERT、GPT学习问题个人记录

目录 1. 为什么过去几年大家都在做BERT, 做GPT的人少。 2. 但最近做GPT的多了以及为什么GPT架构的scaling&#xff08;扩展性&#xff09;比BERT好。 3.BERT是否可以用来做生成&#xff0c;如果可以的话为什么大家都用GPT不用BERT. 4. BERT里的NSP后面被认为是没用的&#x…

Leetcode—380.O(1) 时间插入、删除和获取随机元素【中等】

2023每日刷题&#xff08;五十七&#xff09; Leetcode—380.O(1) 时间插入、删除和获取随机元素 算法思想 实现代码 class RandomizedSet { public:vector<int> nums;unordered_map<int, int> dict;RandomizedSet() {srand((unsigned)time(NULL));}bool insert(…

【STM32】USART串口协议

1 通信接口 通信的目的&#xff1a;将一个设备的数据传送到另一个设备&#xff0c;扩展硬件系统 通信协议&#xff1a;制定通信的规则&#xff0c;通信双方按照协议规则进行数据收发 USRT&#xff1a;TX是数据发送引脚&#xff0c;RX是数据接受引脚&#xff1b; I2C&#xf…

什么是收单外包服务机构

收单外包服务机构是指那些专门为银行或者支付服务提供商&#xff08;如信用卡公司&#xff09;提供收单相关服务的第三方公司&#xff0c;但不直接参与资金的清算和结算过程。这些机构通常负责与商户的日常交互&#xff0c;包括商户的签约、终端的安装和维护、交易数据的处理、…

信号类型, wire/reg--FPGA入门2

1. 信号类型和功能描述 https://blog.csdn.net/m0_59161987/article/details/129723048?ops_request_misc%257B%2522request%255Fid%2522%253A%2522170260773016800192251853%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id1702607730168001…

module ‘tensorflow‘ has no attribute XXX 报错解决

问题描述&#xff1a; 粘了别人的tensorflow项目&#xff0c;运行总是报错module ‘tensorflow’ has no attribute什么什么 问题解决&#xff1a; 导入tensorflow的代码如下 import tensorflow as tf此时&#xff0c;某个某块报错&#xff0c;比如下面这个 那么就直接把tf.…

基于python实现原神那维莱特开转脚本

相信不少原友都抽取了枫丹大C那维莱特&#xff0c;其强力的输出让不少玩家爱不释手。由于其转的越快&#xff0c;越不容易丢伤害的特点&#xff0c;很多原友在开转时容易汗流浃背&#xff0c;所以特意用python写了一个自动转圈脚本&#xff0c;当按住鼠标侧键时&#xff0c;即可…

【Docker】WSL 2 上的 Docker 搭建和入门

▒ 目录 ▒ &#x1f6eb; 导读开发环境 1️⃣ 安装安装Docker Desktop for Windows 2️⃣ 环境配置3️⃣ hello world第一次运行再次运行分析总结 &#x1f4d6; 参考资料 &#x1f6eb; 导读 开发环境 版本号描述文章日期2023-12-14操作系统Win11 - 22H222621.2715WSL2 C:…

【NTN 卫星通信】Starlink,卫星互联网的技术革命(一)

1. 什么是Starlink Starlink是由Elon Musk创立的私人太空探索公司SpaceX提供的卫星互联网服务。它旨在为世界上传统互联网服务速度慢或不可用的偏远地区提供价格合理的高速互联网。 为什么Starlink很重要&#xff1f;   Starlink之所以重要&#xff0c;是因为它有可能为数百万…