代码随想录leetcode200题之数组

目录

  • 1 介绍
  • 2 训练
  • 3 参考

1 介绍

本博客用来记录代码随想录leetcode200题中数组部分的题目。

2 训练

题目1:704二分查找

C++代码如下,

class Solution {
public:int search(vector<int>& nums, int target) {int res = -1;int l = 0, r = nums.size() - 1;//找到>=target的下标while (l <= r) {int mid = l + r >> 1;if (nums[mid] >= target) {res = mid;r = mid - 1;} else {l = mid + 1;}}if (res == -1) return res;else return nums[res] == target ? res : -1;}
};

python3代码如下,

class Solution:def search(self, nums: List[int], target: int) -> int:res = -1l, r = 0, len(nums) - 1while l <= r:mid = (l + r) // 2if nums[mid] >= target:res = mid r = mid - 1else:l = mid + 1if res == -1:return res else:return res if nums[res] == target else -1

题目2:27移除元素

C++代码如下,

class Solution {
public:int removeElement(vector<int>& nums, int val) {int i = 0;for (int j = 0; j < nums.size(); ++j) {if (nums[j] != val) nums[i++] = nums[j];}return i;}
};

python3代码如下,

class Solution:def removeElement(self, nums: List[int], val: int) -> int:i = 0for j in range(len(nums)):if nums[j] != val:nums[i] = nums[j]i += 1return i

题目3:977有序数组的平方

C++代码如下,

class Solution {
public:vector<int> sortedSquares(vector<int>& nums) {//从最大数开始排int n = nums.size();int i = 0, j = n - 1;vector<int> res(n);int k = n - 1;while (i <= j) {if (nums[i] * nums[i] > nums[j] * nums[j]) {res[k] = nums[i] * nums[i];i++;k--;} else {res[k] = nums[j] * nums[j];j--;k--;}}return res;}
};

python3代码如下,

class Solution:def sortedSquares(self, nums: List[int]) -> List[int]:n = len(nums)i, j = 0, n - 1k = n - 1res = [0] * n while i <= j:if nums[i] * nums[i] > nums[j] * nums[j]:res[k] = nums[i] * nums[i]i += 1k -= 1else:res[k] = nums[j] * nums[j]j -= 1k -= 1return res

题目4:209长度最小的子数组

C++代码如下,

//往大了讲,与子数组的最大和类似
class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {//滑动窗口法int res = INT_MAX;int s = 0;for (int r = 0, l = 0; r < nums.size(); ++r) {s += nums[r];while (s >= target) {res = min(res, r - l + 1);s -= nums[l++];}}return res == INT_MAX ? 0 : res;}
};

python3代码如下,

class Solution:def minSubArrayLen(self, target: int, nums: List[int]) -> int:s = 0l, r = 0, 0n = len(nums)res = 1e10while r < n:s += nums[r]while s >= target:res = min(res, r - l + 1)s -= nums[l]l += 1r += 1return res if res != 1e10 else 0

题目5:59螺旋矩阵 II

C++代码如下,

class Solution {
public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>> res(n, vector<int>(n, 0));int val = 1;for (int k = 0; k <= n / 2; k += 1) {//起点(0 + k, 0 + k)int x0 = k, y0 = k;int length = n - 2 * k;//向右for (int step = 0; step < length - 1; ++step) {int x = x0;int y = y0 + step;res[x][y] = val++; }//向下x0 = x0;y0 = y0 + length - 1;for (int step = 0; step < length - 1; ++step) {int x = x0 + step;int y = y0;res[x][y] = val++;}//向左<--x0 = x0 + length - 1;y0 = y0;for (int step = 0; step < length - 1; ++step) {int x = x0;int y = y0 - step;res[x][y] = val++;}//向上x0 = x0;y0 = y0 - length + 1;for (int step = 0; step < length - 1; ++step) {int x = x0 - step;int y = y0;res[x][y] = val++;}//最后一步if (length == 1) {res[x0][y0] = val;}}return res;}
};

python3代码如下,

class Solution:def generateMatrix(self, n: int) -> List[List[int]]:res = [[0] * n for _ in range(n)]val = 1for k in range(n // 2 + 1):x0, y0 = k, klength = n - 2 * k#向右走-->for step in range(length-1):x, y = x0, y0 + step res[x][y] = val val += 1x0, y0 = x0, y0 + length - 1#向下走for step in range(length-1):x, y = x0 + step, y0 res[x][y] = val val += 1x0, y0 = x0 + length - 1, y0#向左走<--for step in range(length-1):x, y = x0, y0 - step res[x][y] = val val += 1x0, y0 = x0, y0 - length + 1#向上走for step in range(length-1):x, y = x0 - step, y0 res[x][y] = val val += 1if length == 1:res[x0][y0] = val val += 1return res 

3 参考

代码随想录官网

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

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

相关文章

STM32快速入门(串口传输之USART)

STM32快速入门&#xff08;串口传输之USART&#xff09; 前言 USART串口传输能实现信息在设备之间的点对点传输&#xff0c;支持单工、半双工、全全双工&#xff0c;一般是有三个引脚&#xff1a;TX、RX、SW_RX&#xff08;共地&#xff09;。不需要一根线来同步时钟。最大优…

停车场收费管理系统winfrom

停车场收费管理系统winfrom 管理员登陆后可以费用设置 修改密码 开户 充值 注销 入库 出库 退出 本项目通过dat文件格式存储数据 public static void Load() { string path Application.StartupPath "\data\data2.dat"; if (File.Exists(path)) …

4diacIDE同时编译不同版本踩坑记录

4diac不同版本依赖插件版本及jdk版本是不同的&#xff0c;当你需要搭建不同版本4diacIDE开发环境时&#xff0c;就会出现各种问题。最近一个月github上项目提交记录比较多&#xff0c;出现了不少坑。以下记录下此背景下的解决方法&#xff1a; 1、首先由于.target依赖的eclipse…

探索大语言模型在信息提取中的应用与前景

随着人工智能技术的快速发展&#xff0c;大语言模型&#xff08;LLMs&#xff09;在自然语言处理&#xff08;NLP&#xff09;领域取得了显著的进展。特别是在信息提取&#xff08;IE&#xff09;任务中&#xff0c;LLMs展现出了前所未有的潜力和优势。信息提取是从非结构化文本…

【Linux】网络接口绑定和组合的操作实例

网络接口绑定和组合的操作实例 &#xff08;一&#xff09;网卡1. 增2. 查3. 激活——设置网络接口 &#xff08;二&#xff09;网络接口绑定1. 概述2. 实验操作3. 删除绑定 &#xff08;三&#xff09;网络接口组合1. 概述2. 实验操作 &#xff08;一&#xff09;网卡 1. 增 …

Java_从入门到JavaEE_10

一、继承 概念&#xff1a;子类继承父类所有的属性和方法应用场景&#xff1a;多个类似的类&#xff0c;有相同的属性和方法&#xff0c;就可以把相同属性和方法抽取到父类继承优缺点&#xff1a; 优点&#xff1a;解决了代码的冗余缺点&#xff1a;增加了类与类之间的关联性、…

122. Kafka问题与解决实践

文章目录 前言顺序问题1. 为什么要保证消息的顺序&#xff1f;2.如何保证消息顺序&#xff1f;3.出现意外4.解决过程 消息积压1. 消息体过大2. 路由规则不合理3. 批量操作引起的连锁反应4. 表过大 主键冲突数据库主从延迟重复消费多环境消费问题后记 前言 假如有家公司是做餐饮…

041.数据流中的移动平均值

刷算法题&#xff1a; 第一遍&#xff1a;1.看5分钟&#xff0c;没思路看题解 2.通过题解改进自己的解法&#xff0c;并且要写每行的注释以及自己的思路。 3.思考自己做到了题解的哪一步&#xff0c;下次怎么才能做对(总结方法) 4.整理到自己的自媒体平台。 5.再刷重复的类…

web安全day03

MYSQL注入&#xff1a; SQL 注入的原理、危害及防御措施 SQL 注入的原理&#xff1a;原本的 SQL 语句在与用户可控的参数经过了如拼接、替换等字符串操作后&#xff0c;得到一个新的 SQL 语句并被数据库解析执行&#xff0c;从而达到非预期的效果。 SQL 注入的危害&#xff…

docker安装elasticsearch:7.17.21

docker安装elasticsearch:7.17.21 下载对应版本的docker镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.21启动容器 docker run --name elasticsearch-test -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -t docker.elastic.…

字节跳动(社招)四面算法原题

TikTok 进展 又是一期定时汇报 TikTok 进展的推文。 上周&#xff0c;美国总统拜登签署了价值 950 亿美元的一揽子对外援助法案。 该法案涉及强制字节跳动剥离旗下应用 TikTok 美国业务&#xff0c;即 针对 TikTok 非卖即禁的"强抢行为"开始进入九个月&#xff08;27…

如何使用Excel生成柱状图

一、先把数据表格填好 二、选择数据区域&#xff0c;点击插入→选择柱状图 三、选择好图表类型→插入预设图表 四、添加数据标签 单击柱状图→右击选择添加数据标签 五、效果如下

vue axios 请求过滤空值

过滤判断请求参数中是否是有字符串、空对象、空数组、null、undefined、NaN中的一个,不包含数字0 一、npm安装 lodash 包 二、request.js 请求拦截配置 point&#xff1a; 1、请求拦截器中添加对 params / data 传参的空值判断 2、针对文件上传类的接口&#xff0c;需要屏蔽…

AI大模型探索之路-训练篇17:大语言模型预训练-微调技术之QLoRA

系列篇章&#x1f4a5; AI大模型探索之路-训练篇1&#xff1a;大语言模型微调基础认知 AI大模型探索之路-训练篇2&#xff1a;大语言模型预训练基础认知 AI大模型探索之路-训练篇3&#xff1a;大语言模型全景解读 AI大模型探索之路-训练篇4&#xff1a;大语言模型训练数据集概…

HKT x Microsoft 365 Copilot 助力企业提升工作效率

人工智能&#xff08;AI&#xff09;在工作场所的应用和整合日益增多&#xff0c;更成为塑造未来工作模式的革新趋势之一。AI不仅简化和改进了许多任务和流程&#xff0c;还为协作、沟通和创新开辟了新的机遇。不久前&#xff0c;微软新推出AI驱动的生成式生产力工具— Microso…

移除链表元素题目讲解

一&#xff1a;题目 二&#xff1a;思路讲解 方法一&#xff1a; 1&#xff1a;创建两个指针prev和cur&#xff0c;初识位置cur为head&#xff0c;prev为NULL&#xff0c;然后两个指针往后移动开始去寻找与val值吻合的节点&#xff0c;最后找到节点的时候&#xff0c;cur指向…

基于springboot实现体育馆管理系统项目【项目源码+论文说明】

基于springboot实现体育馆管理系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本体育馆管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理…

fiori SAP ui5 动态改变控件颜色

使用CustomData动态改变控件颜色 有时候我们需要改变控件颜色&#xff0c;对于高度封装的控件&#xff0c;显然改变控件CSS是比较困难的&#xff0c;幸好SAP UI5预设了一个customData的属性&#xff0c;每个控件都能使用她。 如下代码是判断汇率是否有改变&#xff0c;如果改…

delphi6直连redis服务(用lua脚本redis模块)

一、创建一个exe程序 创建一个exe程序,引用LuaRedis.pas单元(此单元自己封装的代码,目前主要封装了获取key和设置key/value功能),代码如下: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;type…

Watchdog,一双专为 Python 而生的守护者之眼

大家好&#xff01;我是爱摸鱼的小鸿&#xff0c;关注我&#xff0c;收看每期的编程干货。 一个简单的库&#xff0c;也许能够开启我们的智慧之门&#xff0c; 一个普通的方法&#xff0c;也许能在危急时刻挽救我们于水深火热&#xff0c; 一个新颖的思维方式&#xff0c;也许能…