算法练习工程1.2
题目要求:
* 问题标题:删除有序数组中的重复项:
* 题意说明:
* 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
* 元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
* 考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:
* 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
* 返回 k 。
* 判题标准: *
* 系统会用下面的代码来测试你的题解: *
* int[] nums = [...]; // 输入数组
* int[] expectedNums = [...]; // 长度正确的期望答案 *
* int k = removeDuplicates(nums); // 调用 *
* assert k == expectedNums.length;
* for (int i = 0; i < k; i++) {
* assert nums[i] == expectedNums[i];
* }
* 如果所有断言都通过,那么您的题解将被 通过。
*
* 示例 1: *
* 输入:nums = [1,1,2]
* 输出:2, nums = [1,2,_]
* 解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。
*
* 示例 2: *
* 输入:nums = [0,0,1,1,1,2,2,3,3,4]
* 输出:5, nums = [0,1,2,3,4]
* 解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。
*
* 提示: *
* 1 <= nums.length <= 3 * 104
* -104 <= nums[i] <= 104
* nums 已按 升序 排列
*
* Related Topics
* 数组
* 双指针
/*** @ClassName RemoveDuplicates_0007* @Author cheng* @Description* 问题标题:删除有序数组中的重复项:* 题意说明:* 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。* 元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。* 考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:* 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。* 返回 k 。* 判题标准: ** 系统会用下面的代码来测试你的题解: ** int[] nums = [...]; // 输入数组* int[] expectedNums = [...]; // 长度正确的期望答案 ** int k = removeDuplicates(nums); // 调用 ** assert k == expectedNums.length;* for (int i = 0; i < k; i++) {* assert nums[i] == expectedNums[i];* }* 如果所有断言都通过,那么您的题解将被 通过。** 示例 1: ** 输入:nums = [1,1,2]* 输出:2, nums = [1,2,_]* 解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。** 示例 2: ** 输入:nums = [0,0,1,1,1,2,2,3,3,4]* 输出:5, nums = [0,1,2,3,4]* 解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。** 提示: ** 1 <= nums.length <= 3 * 104* -104 <= nums[i] <= 104* nums 已按 升序 排列** Related Topics* 数组* 双指针** @Date 2023/8/4 9:46* @Version 1.0*/
public class RemoveDuplicates_0007 {public static void main(String[] args) {}public static int removeDuplicates(int[] nums) {return 0;}
}
结果的话分别有俩种方式来进行编写:
1.数组
public static void main(String[] args) {int[] nums = new int[]{0,0,1,1,1,2,2,3,3,4};//返回不重复元素的长度System.out.println(removeDuplicates(nums));}public static int removeDuplicates(int[] nums) {int index =0;for (int i = 0; i < nums.length; i++) {if(nums[i] == nums[index]){continue;}nums[index +1] = nums[i];index ++;}return index+1;}
2.双指针
public static void main(String[] args) {int[] nums = new int[]{0,0,1,1,1,2,2,3,3,4};//返回不重复元素的长度System.out.println(removeDuplicates(nums));}//双指针思想public static int removeDuplicates(int[] nums) {int left;int right;left=1;right=1;if (nums.length == 0) {return 0;}for(left=1;left<nums.length;left++){if(nums[left]!=nums[left-1]){nums[right]=nums[left];right++;}}return right;}
相关文章:
算法练习工程1.2
题目要求: * 问题标题:删除有序数组中的重复项: * 题意说明: * 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 * …...
数字IC流片经历有多重要?怎样才能有流片机会?
都说拥有流片经验可以显示你在实际项目中的实践能力和对整个设计流程的了解程度,流片经历的重要性不言而喻。 什么是芯片流片 像流水线一样通过一系列工艺步骤制造芯片,这就是流片。在芯片制造过程中一般有两段时间可以叫作流片。 流片:英…...
fontfaceobserver 第三方字体加载优化方案
fontfaceobserver 第三方字体加载优化方案 1. github地址 https://github.com/bramstein/fontfaceobserver 2. 基础使用方法 const font new FontFaceObserver(My Family, {weight: 400 });font.load().then(function () {console.log(Font is available); }, function ()…...
laravel安装composer依赖
一.问题描述 拉取的新项目没有依赖 项目根目录没有vendor目录 报错 二.安装composer,拉取依赖 1.如果没有composer先去下载 官网地址:Packagist / Composer 中国全量镜像 我的博客安装composer:composer最新版本安装_荒-漠的博客-CSDN博客 2.进入项目根目录cmd或者在项目中…...
问题聚集度Hive SQL
问题聚集度:最小的分母占比,贡献最多的分子占比,即小规模贡献大问题。 selectcity_name,user_id,rf_type,deal_ord_cnt,sale_amt,rf_ord_cnt,rf_amt,rf_ra,rf_amt_ra,rf_all,ord_cnt_all,rf_gx,ord_cnt_gx,del_gx,row_number() over(partiti…...
Windows11右键菜单
刚开始使用Windows11时,新的右键菜单用起来很不习惯。 记录一下修改和恢复Windows11的右键菜单的方法。 1.Win11切换到旧版右键菜单: 方法:WinR打开CMD,运行下面的命令行 添加注册列表重启Windows资源管理器 reg add "HKC…...
篇十四:观察者模式:对象间的通知与更新
篇十四:“观察者模式:对象间的通知与更新” 设计模式是软件开发中的重要知识,观察者模式(Observer Pattern)是一种行为型设计模式,用于在对象间建立一种一对多的依赖关系,当一个对象的状态发生…...
Hadoop知识点总结
1. MapReduce中Shuffle的执行流程是什么样的? - 阶段:Map端Shuffle、Reduce端Shuffle - 功能:分区、排序、分组 Map端Shuffle 分区(Partition):在这个阶段,Map任务会调用分区器,根据Key的Hash值取模&a…...
相关搜索量激增10000%!“芭比周边”产品火爆亚马逊!
据外媒报道,芭比娃娃是今年夏天最热的话题。今年7月份,“芭比娃娃”是亚马逊上搜索最多的词。第二季度,Shopify上的芭比娃娃销量激增了56%。知名玩具制造商美泰(Mattel)预计,受电影的推动,在未来…...
C高级第四讲
1、思维导图 2、写一个shell函数,获取用户的uid和gid并使用变量接收 #!/bin/bash function get_id() {uidid -u ubuntugidid -g ubuntu } get_id echo "uid:$uid" echo "gid:$gid"运行结果 3、排序 冒泡排序 /* ------------------------…...
Idea小操作
Idea操作 idea提取内容构成一个方法 idea提取内容构成一个方法...
【计算机网络】socket编程
文章目录 1. 网络通信的理解2.进程PID可以取代端口号吗?3. 认识TCP协议4. 认识 UDP协议5. socket编程接口udp_server.hpp的代码解析socket——创建 socket 文件描述符Initserver——初始化1.创建套接字接口,打开网络文件bind——绑定的使用 2.给服务器指…...
2023华为OD机试真题 Python 实现【寻找最大价值的矿堆/深度优先搜索】
前言 本题使用Python解答,如果需要Java代码,请点击以下链接:点我 题目 我们规定,0表示空地,1表示银矿、2表示金矿,矿堆表示由相邻的金矿或银矿连接形成的地图。 银矿价值是1 ,金矿价值是2 ,你的目标是找出地图中最大价值的矿堆,并且输出该矿堆的价值 示例1 输入:…...
【Java面试】Nacos自动注册原理实现以及服务注册更新并如何保存到注册表
文章目录 Nacos自动注册原理实现服务注册更新并如何保存到注册表 Nacos自动注册原理实现 完整流程 我们知道SpringBoot提供了挂载点的方式来帮助我们的类完成自动注入。 Nacos再META-INF的spring.factories这个文件中添加了自己需要自动注入的Bean对象。 叫做NacosServiceRegi…...
linux 手动编译安装 pkg-config 步骤
1. 下载源码 Index of /releases (pkg-config.freedesktop.org) 2. 解压 并 进入解压后的文件夹 3. 运行配置文件 ./configure 错误解决办法:在linux中使用 ./configure 时报错 4. 编译、 自检、 安装 make make check make install 5. 安装完成后查看版本号…...
【MongoDB】数据库、集合、文档常用CRUD命令
目录 一、数据库操作 1、创建数据库操作 2、查看当前有哪些数据库 3、查看当前在使用哪个数据库 4、删除数据库 二、集合操作 1、查看有哪些集合 2、删除集合 3、创建集合 三、文档基本操作 1、插入数据 2、查询数据 3、删除数据 4、修改数据 四、文档分页查询 …...
【JVM】是如何管理内存的
文章目录 JVM 内存管理 模型JVM内存管理示例解析jvm 常见优化手段 JVM 内存管理 模型 以下是JVM内存管理的详细图示: ------------------------------------------------------ | Java 运行时数据区 | ------…...
进程与线程、线程创建、线程周期、多线程安全和线程池(ThreadPoolExecutor)
目录 进程与线程线程和进程的区别是什么?线程分两种:用户线程和守护线程线程创建四种方式run()和start()方法区别:为什么调用 start() 方法时会执行 run() 方法,为什么不能直接调用 run() 方法?Runnable接口和Callable…...
《论文阅读13》Efficient Urban-scale Point Clouds Segmentationwith BEV Projection
一、论文 研究领域: 城市级3D语义分割论文:Efficient Urban-scale Point Clouds Segmentationwith BEV Projection论文链接 注: BEV: Birds Eye View BEV投影是指鸟瞰视角(Birds Eye View,简称BEV)的一种从上方观看对象或场景的…...
Django实现音乐网站 ⑻
使用Python Django框架制作一个音乐网站, 本篇主要是后台对单曲原有功能的基础上进行部分功能实现和显示优化。 目录 新增编辑 歌手下拉显示修改 设置歌曲时长 安装eyed3库 获取mp3时长 歌曲时长字段修改 重写save方法 增加歌手单曲数量 查询歌手单曲数量 …...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
