首页 > 其他分享 >3.25每日总结

3.25每日总结

时间:2024-03-25 20:14:48浏览次数:26  
标签:总结 nums int 每日 System 3.25 result 数组 new

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

代码

package org.example;

import java.util.Scanner;

public class Shuzu {
public int[] removeDuplicates(int[] nums) {
int n = nums.length;
if (n == 0) {
return nums;
}

int j = 0;
for (int i = 1; i < n; i++) {
if (nums[i] != nums[j]) {
j++;
nums[j] = nums[i];
}
}

// 创建一个新的数组来存储非重复元素
int[] result = new int[j + 1];
System.arraycopy(nums, 0, result, 0, j + 1);
return result;
}

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

// 询问用户数组的长度
System.out.print("Enter the length of the array: ");
int length = scanner.nextInt();

// 创建一个指定长度的数组
int[] nums = new int[length];

// 读取用户输入的数组元素
for (int i = 0; i < length; i++) {
System.out.print("Enter element " + (i + 1) + ": ");
nums[i] = scanner.nextInt();
}

// 关闭Scanner对象
scanner.close();

// 创建Shuzu的实例
Shuzu shuzu = new Shuzu();

// 调用removeDuplicates方法并打印结果
int[] uniqueNums = shuzu.removeDuplicates(nums);
System.out.print("The unique elements of the array are: ");
for (int num : uniqueNums) {
System.out.print(num + " ");
}
}
}


主要流程
以数组[1 1 2 2 3 4 4 5]为例
1.i=0 j=0 时nums[i]=nums[j]=1,跳过,i+1,此时i=1 j=0;
2.nums[i]=nums[j],继续跳过i+1,此时i=2 j=0;
3.此时nums[i]=2,nums[j]=1,两者不相等,令nums[++j]=nums[i],此时j=1,i=3;数组变为[1 2 2 2 3 4 4 5]继续循环
4.nums[i]=2,nums[j]=2,相等,重复上面过程,最后数组变为[1 2 3 4 5 4 4 5]
5.
int[] result = new int[j + 1];
System.arraycopy(nums, 0, result, 0, j + 1);
return result;
用这段代码取数组前j+1位,得到结果

标签:总结,nums,int,每日,System,3.25,result,数组,new
From: https://www.cnblogs.com/2351920019xin/p/18095204

相关文章

  • 刷题笔记 3.25
    ABC254C题:给定一个长为n的数列,给定k,可以进行的操作是:交换a[i]和a[i+k],可以进行任意多次,问能否sort成一个非递减数列?我当时的思路:因为我们是知道最后的数列的样子的,然后就思考:“这个数怎么变过来?可以变吗?”然后就发现好像只需要最后的非递减数列的每一个数在原数列中的对应下标......
  • 【每日算法】理论:AIGC模型 刷题:力扣链表操作
    上期文章【每日算法】理论:图像分割相关刷题:设计链表文章目录上期文章一、上期问题二、理论问题1、LAMAInpaint2、IPadapter模型3、Anydoor4、vit(VisionTransformer)架构5、MAE6、CLIP模型三、力扣刷题回顾-链表操作203.移除链表元素206.反转链表24.两两交换链表......
  • 每日面经分享(测试开发经典场景题目)
    1.面试测试场景题目,回答的测试点有哪些?a.功能测试点:确保所测试的功能按照设计要求正常工作。例如,对于电影票预订网站的座位选择功能,测试点可能包括选择连续座位、选择非连续座位、座位已售等情况。b.边界测试点:测试输入值的边界情况,以验证系统在极限条件下的表现。例如......
  • 每日面经分享(操作系统:内存、缓存、硬盘)
    1.用户态和内核态的区别a.用户态和内核态是操作系统中的两种不同的执行模式,用于区分应用程序代码和操作系统内核代码的权限和特权级别。b.用户态是指应用程序运行时所处的执行模式。在用户态下,应用程序只能访问受限资源和执行受限操作,无法直接访问底层硬件或执行特权操......
  • F28004X系列学习总结(3)——GPIO模块
    首先学习的模块就是GPIO,学习完后我们可以做到简单的点灯程序。I/O口配置步骤1、计划自己准备使用的设备引脚2、启动上拉电阻使能(使用GPxPOD寄存器)3、选择输入资格(使用GPxQSELN寄存器,同步、设置采样窗口)4、选择I/O口的方向(使用GPxDIR寄存器)5、选择低功耗模式唤醒源6、选......
  • 20240325每日一题题解
    20240325每日一题题解Problem给出一个整数\(a\)和一个正整数\(n\),求乘方\(a^n\)。输入一行,包含两个整数\(a\)和\(n\)。\(-1000000\lea\le1000000\),\(1\len\le10000\)。输出一个整数,即乘方结果。题目保证最终结果的绝对值不超过\(1000000\)。样例输入23样......
  • 每日导数94
    经典找点问题,如果利用保号性是显然的已知函数\(f(x)=(m+1-x)e^x-\dfrac{1}{2}me^{2x}-2\)(1)当\(m=2\),讨论\(f(x)\)的单调性(2)若\(x=0\),是\(f(x)\)的极小值点,求\(m\)的取值范围解(1)\(m=2,f(x)=(3-x)e^x-e^{2x}-2\),\(f^{\prime}(x)=e^{x}(2-x)-2e^{2x}=e^x(2-x-2e^x)\)因\(......
  • AI每日一问:世界的本源是什么?是原子的吗?无限可分的吗?是物质的还是想象的? 我们应当怎样
    1.世界的本源是什么?是原子的吗?无限可分的吗?是物质的还是想象的?我们应当怎样看待物质世界?以及怎么快速促进强人工智能的到来?Claude-3-Opus这些都是非常深奥而有趣的哲学问题,需要我们深入探讨和思考。关于世界本源的问题,不同的哲学流派有不同的看法。原子论认为物质世界......
  • 3.24每日总结
    activitydurationdependsonresourcetypeA2days SAB10daysASDC2daysASDD2daysCSCE3daysCSCF2daysCSCG4daysB,D,E,FSAactivity  durationdepen......
  • 408 考研复试【转载】【总结】
     ------------------------------------------------------------------数据结构:http://www.cnblogs.com/yuxiaoba/p/8646169.html-数组和链表的区别。结构上:在内存中连续存储,固定的长度;链式存储结构。访问方式:下标索引进行访问;访问元素时候只能够通过线性方式由前到后顺序的......