Leetcode经典题目之“双指针交换元素“类题目
1 LC 27. 移除元素
class Solution {public int removeElement(int[] nums, int val) {int n=nums.length;int s=0;for(int i=0;i<n;i++){// 只有不等于目标值的时候才会进行交换,然后移动s指针if(nums[i]!=val){swap(nums,i,s++);}}return s;}void swap(int[]nums, int i, int j){int t=nums[i];nums[i]=nums[j];nums[j]=t;}
}
2 LC 删除有序数组中的重复项
class Solution {public int removeDuplicates(int[] nums) {int n=nums.length;int s=0;for(int i=1;i<n;i++){// 这个if条件也可以换成if(nums[i-1]!=nums[i]), 但是写成下面这样更方便理解,// 因为if(nums[s]!=nums[i]){nums[++s]=nums[i];}}return ++s;}
}
3 LC80. 删除有序数组中的重复项 II
参考解析:双指针解法

public int removeDuplicates(int[] nums) {int n=nums.length;if(n<2){return n;}int s=2,f=2;while(f<n){if(nums[s-2]!=nums[f]){nums[s++]=nums[f];}f++;}return s;}
4 LC912. 快速排序数组:涉及到划分区间的问题,比如将小于等于目标值的元素都移动到左边,大于目标值的元素都移动到右边。参考下面的partition方法
public int[] sortArray(int[] nums) {quickSort3(nums,0,nums.length-1);return nums;}void quickSort3(int[]arr,int i, int j) {if(i>=j)return;int pivot=partition(arr,i,j);quickSort3(arr,i,pivot-1);quickSort3(arr,pivot+1,j);}int partition(int[]arr,int l, int r){Random rand=new Random();int pivot = rand.nextInt(r-l+1)+l;swap(arr,pivot,r);int i=l-1;for(int j=l;j<r;j++){// 符合条件的才进行移动,对指针if(arr[j]<=arr[r]){swap(arr,++i,j);}}swap(arr,r,++i);return i;}void quickSort(int[]arr,int i, int j) {if(i>=j){return;}int base=arr[i];int p=i,q=j;for(int k=i+1;k<=q;){if(arr[k]<base){swap(arr,k,p);p++;k++;}else if(arr[k]>base){swap(arr,k,q);q--;}else{k++;}}for(int k=i;k<=j;k++){System.out.print("k:"+k+","+arr[k]+" ");}quickSort(arr,i,p-1);quickSort(arr,q+1,j);}相关文章:
Leetcode经典题目之“双指针交换元素“类题目
1 LC 27. 移除元素 class Solution {public int removeElement(int[] nums, int val) {int nnums.length;int s0;for(int i0;i<n;i){// 只有不等于目标值的时候才会进行交换,然后移动s指针if(nums[i]!val){swap(nums,i,s);}}return s;}void swap(int[]nums, int…...
计算机基础知识54
ORM的介绍 # ORM是什么? 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(增、删、改、查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql、oracle…...
深度系统(Deepin)开机无法登录,提示等待一千五百分钟
深度系统(Deepin)20.0, 某次开机无法登录,提示等待一千五百分钟。 ????????? 用电脑这么多年,头一回遇到这种…...
工具及方法 - 多邻国: Duolingo
网站:Duolingo 有iOS和Android应用,在App Store和Google Play上都能下载。也可以使用网页版。我就在iOS上安装了付费版,为了小朋友学习英语,一年的费用¥588。 目前学习中的课程是英语、日语和粤语。英语是小学课程&a…...
Redis篇---第十一篇
系列文章目录 文章目录 系列文章目录前言一、说说Redis持久化机制二、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题三、热点数据和冷数据是什么前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章…...
linux CentOS7 安装git 配置秘钥公钥克隆代码
第一步:安装git yum -y install git #查看版本 git --version 第二步:配置git信息 git config --global user.name "username" git config --global user.email "XXXXX.com" 第三步:生成密钥和公钥, 后…...
深度学习之生成唐诗案例(Pytorch版)
主要思路: 对于唐诗生成来说,我们定义一个"S" 和 "E"作为开始和结束。 示例的唐诗大概有40000多首, 首先数据预处理,将唐诗加载到内存,生成对应的word2idx、idx2word、以及唐诗按顺序的字序列。…...
算法设计与分析算法实现——删数问题
通过棋盘输入一个高精度的正整数n(n的有效位数<=240)去掉其中任意s个数字后,剩下的数字按原左右次序将组成一个新的正整数。变成对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。 输入:n,s 输出:最后剩下的最小数 输入实例: 178543 4 输出示例: 13 首先…...
基于Vue+SpringBoot的超市账单管理系统 开源项目
项目编号: S 032 ,文末获取源码。 \color{red}{项目编号:S032,文末获取源码。} 项目编号:S032,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 总体设计3.2 前端设计3…...
【Linux 内核分析课程作业 1】mmap 实现一个 key-valueMap
作业一 功能要求利用 mmap(虚拟内存映射文件) 机制实现一个带持久化能力的 key-valueMap 系统,至少支持单机单进程访问。(可能用到的 linux API: mmap、msync、mremap、munmap、ftruncate、fallocate 等) 电子版提交方式: 2023 年 11 月 20 日 18:00 前通…...
docker compose使用教程(docker-compose教程)
文章目录 Docker Compose 使用教程安装Docker ComposeLinuxWindows 和 macOS Docker Compose 基础Compose 文件结构配置服务网络与卷 Docker Compose 命令启动服务停止服务查看服务状态查看日志缩放服务 多环境部署健康检查与依赖管理Docker Compose 最佳实践常见问题解析如何覆…...
印刷企业实施MES管理系统需要哪些硬件设施
随着科技的飞速发展,印刷行业正面临着前所未有的挑战和机遇。为了提高生产效率,降低成本,并增强市场竞争力,越来越多的印刷企业开始实施制造执行系统(MES)管理系统。本文将重点讨论印刷企业在实施MES管理系…...
Java JSON字符串替换其中对应的值
代码: public static void main(String[] args) { // String theData crmScene.getData();String theData "[{\"type\":1,\"values\":[\"审批中\",\"未交付\"],\"name\":\"status\"}]"…...
Android VSYNC发展历程
0 前言 安卓直到android-4.1.1_r1才首次引入VSYNC实现,然后逐步演进到android-4.4才得以完善,并在android-11、12后继续大改。 1 尚未引入 android-4.0.4_r2.1之前尚未引入VSYNC[1],SurfaceFlinger被实现为一个线程,通过睡眠来实…...
外呼系统作用和优势有哪些okcc,ai源码
随着外呼系统诞生,普通中小企业也开始广泛使用,系统给他们带来更多的服务方式和提升业绩的可能。然而,许多企业对外呼系统的理解相对片面和简单,认为它是一个成本中心,需要继续投入人力和使用。事实上,外呼…...
智元机器人岗位内推
Hi there 👋 智元机器人招聘信息 官网: https://www.agibot.com/ 内推联系 邮箱:jiejietopgmail.com微信:yij1799 高级C软件工程师(上海) 岗位职责: 开发自研机器人操作系统,…...
el-popover和el-tooltip样式修改(普通的组件样式修改方法,对popover是不生效的)
第一步:‘popper-class’=‘popperClass’ //添加类名 <el-table-column label="审核状态" align="center"><template slot-scope="scope"><el-popoverpopper-class="addformPanel"placement="top"width=&…...
【AI实用技巧】GPT写sql统计语句
编写sql的统计语句是一项复杂的任务,特别是涉及多表的情况下。但有了GPT的帮助,一切变得轻松愉快。 AI7号 - 最强人工智能(GPT)中文版https://ai7.pro/s/9v2um 举例说明 有表结构如下: users(user_id, name) bills(…...
LeetCode(31)无重复字符的最长子串【滑动窗口】【中等】
目录 1.题目2.答案3.提交结果截图 链接: 无重复字符的最长子串 1.题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&…...
天猫超市电商营销系统:无代码开发实现API连接集成
无代码开发实现天猫超市与电商系统的高效连接 天猫超市,作为天猫推出的网络零售超市,为广大网购消费者提供了一站式的购物服务。而通过无代码开发的方式,天猫超市能够实现与各种电商系统的连接和集成,这种方式无需进行繁琐的API开…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...
GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
