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

算法通关村第三关——数组白银

文章目录

    • 一、删除元素
      • 1.1 原地移除所有值等于val的元素
      • 1.2 删除有序数组中的重复项
    • 二、元素奇偶移动
    • 三、数组轮转


一、删除元素

1.1 原地移除所有值等于val的元素

LeetCode 27.移除元素
解法1:快慢指针

class Solution {public int removeElement(int[] nums, int val) {int fast=0;int slow=0;for(; fast<nums.length; fast++){if(nums[fast]!=val){nums[slow] = nums[fast];slow++;}}return slow;}
}

解法2:双指针+覆盖

class Solution {public int removeElement(int[] nums, int val) {int left=0;int right=nums.length-1;while(left<=right){if(nums[left]==val){nums[left] = nums[right--];}else{left++;}}return left;}
}

1.2 删除有序数组中的重复项

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

class Solution {public int removeDuplicates(int[] nums) {int slow = 1;for(int fast=0;fast<nums.length;fast++){if(nums[slow-1]!=nums[fast]){nums[slow]=nums[fast];slow++;}} return slow;}
}

二、元素奇偶移动

LeetCode 905.按奇偶排序数组
双指针遍历判断。

class Solution {public int[] sortArrayByParity(int[] nums) {int left = 0;int right = nums.length - 1;while(left<right){if(nums[left]%2>nums[right]%2){int tmp = nums[left];nums[left] = nums[right];nums[right] = tmp;}if(nums[left]%2==0) left++;if(nums[right]%2==1) right--;}return nums;}
}

三、数组轮转

LeetCode 189.轮转数组
比如 1,2,3,4,5,6,7。向右轮转3个位置,结果为5,6,7,1,2,3,4

可以把数组分为不轮转的数组和要轮转的数组两部分 1,2,3,4 和 5,6,7。各自反转为4,3,2,1和7,6,5。最后整体反转得到结果。

class Solution {public void rotate(int[] nums, int k) {int l = nums.length;k %= l;reverse(nums,0,l-k-1);reverse(nums,l-k,l-1);reverse(nums,0,l-1);}private void reverse(int[] nums,int left,int right){while(left<right){int tmp = nums[left];nums[left] = nums[right];nums[right] = tmp;left++;right--;}}
}

相关文章:

算法通关村第三关——数组白银

文章目录 一、删除元素1.1 原地移除所有值等于val的元素1.2 删除有序数组中的重复项 二、元素奇偶移动三、数组轮转 一、删除元素 1.1 原地移除所有值等于val的元素 LeetCode 27.移除元素 解法1&#xff1a;快慢指针 class Solution {public int removeElement(int[] nums, …...

黑客利用 Facebook 漏洞,发起网络钓鱼攻击

Bleeping Computer 网站披露&#xff0c;网络攻击者利用 Salesforce 电子邮件服务和 SMTP 服务器中的漏洞&#xff0c;针对一些特定的 Facebook 账户发起复杂的网络钓鱼活动。 据悉&#xff0c;网络攻击者利用 Salesforce 等具有良好信誉的电子邮件网关分发网络钓鱼电子邮件&am…...

React Router@3.x 升级到 @6.x 的实战

一、概述 目前公司产品有关 react 的工具版本普遍较低,其中react router版本为 3.x(是的,没有看错,3.x 的版本,4年前的版本)。而最新的 react router 已经到了 6.x 版本。 为了能够跟上路由的脚步,也为了使用 router 相关的 hooks 函数,一次必不可少的升级由此到来!由于…...

LAXCUS和GPU软硬件结合,构建强大算力生态

随着科技的不断进步&#xff0c;计算机技术已经渗透到我们生活的方方面面。其中&#xff0c;GPU(图形处理器)作为一种强大的计算设备&#xff0c;已经成为了人工智能、大数据、云计算等领域的核心硬件之一。然而&#xff0c;传统操作系统都是单机系统&#xff0c;只能在一台计算…...

学会这一招,轻松玩转小程序自动化

jmeter 可以做性能测试&#xff0c;这个很多人都知道&#xff0c;那你知道&#xff0c;jmeter 可以在启动运行时&#xff0c;指定线程数和运行时间&#xff0c;自定义性能场景吗&#xff1f; jmeter 性能测试&#xff0c;动态设定性能场景 平时&#xff0c;我们使用 jmeter 进…...

Mongodb 更新集合的方法到底有几种 (上) ?

更新方法 Mongodb 使用以下几种方法来更新文档 &#xff0c; Mongodb V5.0 使用 mongosh 客户端&#xff1a; db.collection.updateOne(<filter>, <update>, <options>) db.collection.updateMany(<filter>, <update>, <options>) db.c…...

推荐5款能帮你解决各种问题的神器

​ 今天我要向大家推荐5款超级好用的效率软件&#xff0c;无论是在学习还是办公中都能够极大地提高效率。这些软件可以帮助你解决许多问题&#xff0c;而且每个都是真正的神器。 网速和硬件监控——TrafficMonitor ​ TrafficMonitor 是一款可以在任务栏或桌面悬浮窗显示系统…...

绕过 open_basedir

目录 0x01 首先了解什么是 open_basedir 0x02 通过命令执行绕过 0x03 通过symlink 绕过 &#xff08;软连接&#xff09; 0x04利用glob://绕过 方式1——DirectoryIteratorglob:// 方式2——opendir()readdir()glob:// 0x05 通过 ini_set和chdir来绕过 在ctfshow 72遇到…...

如何使用SpringBoot 自定义转换器

&#x1f600;前言 本篇博文是关于SpringBoot 自定义转换器的使用&#xff0c;希望你能够喜欢&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的…...

多线程(进阶)

一、常见的锁策略 1.1读写锁 多线程之间&#xff0c;数据的读取方之间不会产生线程安全问题&#xff0c;但数据的写入方互相之间以及和读者之间都需 要进行互斥。如果两种场景下都用同一个锁&#xff0c;就会产生极大的性能损耗。所以读写锁因此而产生。 读写锁&#xff08;r…...

端口输入的数据为什么要打拍?

一次作者在开发图像时候&#xff0c;对输入的图像没有打拍&#xff0c;直接输出给显示终端&#xff0c;时好时坏&#xff0c;或者图像颜色不正确&#xff0c;最终经过打拍解决了此问题。 //配置为16-Bit SDR ITU-R BT.656模式时pixel_data[23:16]为高阻。always (posedge pixe…...

Qt读写Excel--QXlsx编译为静态库2

1、概述&#x1f954; 在使用QXlsx时由于源码文件比较多&#xff0c;如果直接加载进项目里面&#xff0c;会增加每次编译的时间&#xff1b; 直接将源码加载进项目工程中&#xff0c;会导致项目文件非常多&#xff0c;结构变得更加臃肿&#xff1b; 所以在本文中将会将QXlsx编译…...

win11电脑查找已连接打印机ip的方法

此方法适用于驱动打印机&#xff0c;windows 11操作系统。 方法一&#xff1a;直接查看法 首先大家可以看看自己的打印机有没有lcd屏幕。有些直接在屏幕显示ip&#xff1b;另一种进入菜单&#xff0c;然后可以在里面的选项中显示“ip地址”。 方法二&#xff1a;设置中查看 …...

测试开发探索:“WeTalk“网页聊天室的测试流程与自动化

目录 引言&#xff1a; 测试开发目标&#xff1a; "WeTalk"项目背景 关于登录测试用例的设计 测试开发策略与流程 集成测试&#xff1a;Selenium JUnit 接口测试&#xff1a;Postman 测试用例的设计与实现 自动化测试演示&#xff1a; 用例一&#xff1a;登…...

图片增强组件实现

设计并实现了一个图片增强的组件&#xff0c;具体功能如下&#xff1a; 图片数据增强&#xff0c;包括且不限于&#xff1a;图片旋转、比例增强、高斯噪声、饱和度变换等若图片包含对应标注boundingbox&#xff0c;也支持对应变换&#xff0c;保证圈选内容的不变性实现多种方式…...

go.sum are different when using go mod vendor/download

本地Golang配置 今天本地编译一个项目&#xff0c;遇到以下错误 PS D:\Code\Golang\jiankunking\k8s-ext> go mod tidy go: downloading github.com/huaweicloud/huaweicloud-sdk-go-obs v3.23.4incompatible verifying github.com/gin-gonic/ginv1.7.3: checksum mismat…...

Docker技术入门教程

Docker技术入门教程 一、docker概念 一款产品从开发到上线&#xff0c;从操作系统&#xff0c;到运行环境&#xff0c;再到应用配置。作为开发运维之间的协作我们需要关心很多东西&#xff0c;这也是很多互联网公司都不得不面对的问题&#xff0c;特别是各种版本的迭代之后&a…...

Vue2-组件,组件的使用及注意点,组件嵌套,VueComponent构造函数,单文件组件

&#x1f954;&#xff1a;功不唐捐 更多Vue知识请点击——Vue.js VUE-Day5 组件与使用组件的三大步1、定义组件(创建组件)2、注册组件①局部注册②全局注册 3、使用组件小案例&#xff1a; 使用组件的一些注意点1.关于组件名2.关于组件标签3.一个简写方式 组件的嵌套VueCompon…...

IntelliJ IDEA Bookmark使用

1 增加 右键行号栏 2 查看 从favorite这里查看 参考IntelliJ IDEA 小技巧&#xff1a;Bookmark(书签)的使用_bookmark idea 使用_大唐冠军侯的博客-CSDN博客...

kriging-contour前端克里金插值

先看效果&#xff1a; 本项目在kriging-contour插件基础上进行了封装&#xff0c;增加了自定义区域插值&#xff0c;gitbub地址。...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建

【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

boost::filesystem::path文件路径使用详解和示例

boost::filesystem::path 是 Boost 库中用于跨平台操作文件路径的类&#xff0c;封装了路径的拼接、分割、提取、判断等常用功能。下面是对它的使用详解&#xff0c;包括常用接口与完整示例。 1. 引入头文件与命名空间 #include <boost/filesystem.hpp> namespace fs b…...

Python爬虫实战:研究Restkit库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...

GraphRAG优化新思路-开源的ROGRAG框架

目前的如微软开源的GraphRAG的工作流程都较为复杂&#xff0c;难以孤立地评估各个组件的贡献&#xff0c;传统的检索方法在处理复杂推理任务时可能不够有效&#xff0c;特别是在需要理解实体间关系或多跳知识的情况下。先说结论&#xff0c;看完后感觉这个框架性能上不会比Grap…...

qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001

qt 5.9.7 vs2013 qt add-in 2.3.2 起因是添加一个新的控件类&#xff0c;直接把源文件拖进VS的项目里&#xff0c;然后VS卡住十秒&#xff0c;然后编译就报一堆 error LNK2001 一看项目的Generated Files下的moc_和ui_文件丢失了一部分&#xff0c;导致编译的时候找不到了。因…...