[蓝蓝计算机考研算法训练二期]-day23

99 阅读1分钟

32、删除顺序表中最小的元素,由最后一个元素补充

思路

遍历数组,找出最小值及下标,将数组对应位置的值改为数组最后一个元素,然后将数组长度-1。

具体实现(java)

public static void delete(int[] nums){
    int min=nums[0];
    int index=0;
    for(int i=0;i<nums.length;i++){
        if(min<nums[i]){
            min=nums[i];
            index=i;
        }
    }
    nums[index]=nums[nums.length];
    nums.length--;
}

33、逆转顺序表中的元素

思路

从两头开始遍历数组,每次交换两边的值即可,直到遍历到中间元素。

具体实现(java)

public static void reverse(int[] nums){
    int left=0,right=nums.length-1,temp=0;
    while(left<right){
        temp=left;
        nums[left]=nums[right];
        nums[right]=temp;
        left++;
        right--;
    }
}

34、删除顺序表中为x的元素:

思路

遍历数组,当当前元素的值等于x时,遍历剩余元素,将剩余元素往前移。

具体实现(java)

public static void delete_num(int[] nums,int x){
    for(int i=0;i<nums.length;i++){
        if(nums[i]==x){
            for(int j=i;j<nums.length-1;j++){
                nums[j]=nums[j+1];
            }
        }
    }    
}