首页 > 其他分享 >数组

数组

时间:2022-12-29 09:11:07浏览次数:32  
标签:arr nums int fastIndex 数组 new public

 

数组-移除元素

026-双指针法删除重复元素

public class _026 {
    public static void main(String[] args) {
        _026 v = new _026();
        int[] arr = new int[]{0,0,1,1,1,2,2,3,3,4};
        System.out.println(v.removeDuplicates(arr));
    }

    /**
     * 双指针法删除重复元素
     * @param nums
     * @return
     */
    public int removeDuplicates(int[] nums) {
        int slowIndex=1;
        for(int fastIndex=1;fastIndex<nums.length;fastIndex++){
            if(nums[fastIndex]!=nums[fastIndex-1]){
                nums[slowIndex]=nums[fastIndex];
                slowIndex++;
            }
        }
        return slowIndex;
    }
}
双指针法删除重复元素

--

027-双指针法原地删除目标元素

public class _027 {
    public static void main(String[] args) {
        int[] arr=new int[]{3,2,2,3};
        _027 v = new _027();
        System.out.println(v.removeElement(arr, 3));
    }
    /**
     * 双指针法原地删除目标元素
     * @param nums
     * @param val
     * @return
     */
    public int removeElement(int[] nums, int val) {
        int slowIndex=0;
        for (int fastIndex=0;fastIndex<nums.length;fastIndex++){
            if(nums[fastIndex]!=val){
                nums[slowIndex]=nums[fastIndex];
                slowIndex++;
            }
        }
        return slowIndex;
    }
}
双指针法原地删除目标元素

--

283-双指针发移动元素

public class _283 {
    public static void main(String[] args) {
        _283 v = new _283();
        int[] arr  =  new int[]{0,1,0,3,12};
        v.moveZeroes(arr);
        for (int i : arr) {
            System.out.println(i);
        }
    }

    /**
     * 移动零
     * 将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序
     * @param nums
     */
    public void moveZeroes(int[] nums) {
        int slowIndex=0;
        for(int fastIndex=0; fastIndex< nums.length; fastIndex++){
            if(nums[fastIndex]!=0){
                swap(nums, slowIndex, fastIndex);
                slowIndex++;
            }
        }
    }

    public void  swap(int[] nums, int left, int right){
        int temp=nums[left];
        nums[left]=nums[right];
        nums[right]=temp;
    }
}
移动零

 

--

 

标签:arr,nums,int,fastIndex,数组,new,public
From: https://www.cnblogs.com/kezhang/p/17011685.html

相关文章

  • 力扣---88. 合并两个有序数组
    给你两个按非递减顺序排列的整数数组 nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按......
  • LeetCode 寻找数组的中心下标算法题解 All In One
    LeetCode寻找数组的中心下标算法题解AllInOne724.FindPivotIndex寻找数组的中心下标"usestrict";/****@authorxgqfrms*@licenseMIT*@copyr......
  • Java中的List数组详解
    1.什么是数组?在Java中,数组List是一种常用的数据结构,它可以存储一组有序的元素,并提供了许多方法来操作这些元素。数组List是Java中内置的一种容器类型,它可以存储任何类型的......
  • 树状数组全家桶
    ChangeLog:2022.12.28开坑。2022.12.28初步完稿。收录了我关于树状数组的一些文章。1.树状数组学习笔记2.树状数组模板题题解3.CMの树状数组题解耗了大......
  • 分享20个Javascript中的数组方法,收藏
    什么是数组?与其他编程语言中的数组一样,Array对象允许在一个变量名称下存储多个项的集合,并且具有用于执行常见数组操作的成员。 声明数组我们可以用两种不同的方式......
  • Java学习之数组
    数组1//filenamesu.java数组讲解/*使用java数组一般需要经过三个步骤:①声明数组②分配空间③创建数组元素并赋值前两个步骤语法如下:数据类型[]数组名;//声明一维......
  • 61.对一个整数数组排序
    61.对一个整数数组排序输入一个整数m,然后输入m个整数存入数组,用一个指针数组分别指向该数组的对应元素。要求,在不改变原始数组顺序的情况下,通过指针数组对数据按升......
  • numpy中查看数组的形状和改变数组的维度
    1.查看数组的形状2.改变数组的维度......
  • 01背包问题中滚动数组的理解
     时间:2022/12/28 问题:背包的最大重量为4。每个物品只有一个,物品重量及价值如下所示: 重量价值物品0115物品1320物品2430问背包能背的物......
  • Java千问12:七个问题帮助初学者深入理解Java数组
    ​几乎所有的高级语言当中,都提供了一种叫做”数组”的东西,Java语言当然也不例外。我们通过数组可以很方便的存储和管理一组数据。因为在Java语言当中使用数组非常的方便,所以......