数组基本方法的总结

1.数组的优缺点

1.1 优点

1.按照索引查询元素快。
2.能储存大量数据。
3.访问数组方便。

1.2缺点

1.根据内容查找元素慢。
2.数组大小一经确定不能改变,不利于动态存储。
3.增加,删除元素效率慢。
4.未封装任何方法,所有操作都需要用户自己定义。

2.数组使用的基本方法

2.1 两数之和

leetcode:两数之和

思路:暴力解法(以后学到更好的解法再来更新吧)
1.使用两次遍历,分别找到两个数。
2.创立一个新数组用来返回。

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] num =new int[2];//用来存储返回值的下标
        for(int i =0;i<nums.length;i++){//第一个数
            for(int j=i+1;j<nums.length;j++){//第二个数
                if(nums[i]+nums[j]==target){
                    num[0]=i;
                    num[1]=j;
                    
                }
            }

        }
        return num ;//返回新数组

    }
}

2.2 删除有序数组中的重复项

leetcode:删除有序数组中的重复项

核心思想:1.数组删除即为将下一位的值将此位覆盖,即为删除此位
2.使用快慢指针的概念

class Solution {
    public int removeDuplicates(int[] nums) {
        int slow = 0;//定义一个慢指针
        for(int i =1;i<nums.length;i++){
            if(nums[slow]!=nums[i]){//只删除重复的数,因此当两数重复时不移位
                slow++;
                nums[slow]=nums[i];

            }
        }
        return slow+1;
    }
}

2.3 移除元素

leetcode:移除元素

核心思想:同上
如果当前数不等于val,指针后移,并且用后一个数覆盖当前数

class Solution {
    public int removeElement(int[] nums, int val) {
        int p =0;      
        for( int i =0;i<nums.length;i++){
            if(nums[i]!=val){
                nums[p++]=nums[i];
            
            }

            }
        return p ;
        }
        
    }

2.4 最大子数组和

leetcode:最大子数组和

核心思路:
动态规划:
1.sum<0就不管了,sum直接指向下一位,直到sum大于0
2. sum>0时,我们无脑加下一位,因为我们已经将上一次的较大值存储,要进行比较,取出最大值。
3.sum用来存储值,ans用来更新最大值。

class Solution {
    /*
    * 动态规划:1.sum<0就不管了,sum直接指向下一位,直到sum大于0
               2. sum>0时,我们无脑加下一位,因为我们已经将上一次的较大值存储,要进行比较,取出最大值
               3.sum用来存储值,ans用来更新最大值。
    */
    public int maxSubArray(int[] nums) {
        int sum = 0;
        int ans = nums[0];
        
        for(int i =0;i<nums.length;i++){
            if(sum>0){
                sum+=nums[i];
            }else{
                sum=nums[i];
            }
            ans = Math.max(ans,sum);//不管sum大于0或者小于0,都要与上一次较大的ans比较,取出较大的值,因此不用担心正数加一个负数变小的问题
        }
        return ans;
    }
}

…一边学习,一边总结。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本次实验我们主要学习了数组方法基本概念、定义方法和调用方法、使用数组等知识点。以下是本次实验的实验报告。 一、实验目的 1. 掌握数组方法基本概念和定义方法; 2. 熟悉调用方法和使用数组; 3. 理解方法数组的使用场景及其优劣。 二、实验内容 1. 数组的定义和使用; 2. 方法的定义和使用。 三、实验步骤 1. 数组的定义和使用 数组是一种数据结构,它可以存储多个相同类型的数据。在Java中,数组可以通过以下方式定义: ``` 数据类型[] 数组名 = new 数据类型[数组长度]; ``` 例如,定义一个整型数组: ``` int[] numbers = new int[5]; ``` 这里定义了一个包含5个整数的数组数组名为numbers。 2. 方法的定义和使用 方法是一种封装了一组语句的代码块,它可以被重复调用。在Java中,定义方法的方式如下: ``` 修饰符 返回值类型 方法名(参数列表) { // 方法体 } ``` 例如,定义一个计算两个整数之和的方法: ``` public int sum(int a, int b) { return a + b; } ``` 这里定义了一个名为sum的方法,它有两个整型参数a和b,返回值为它们的和。 四、实验结果 我们通过以下代码演示了数组方法的使用: ``` public class ArrayAndMethod { public static void main(String[] args) { // 定义一个包含5个整数的数组 int[] numbers = new int[5]; // 给数组赋值 for (int i = 0; i < numbers.length; i++) { numbers[i] = i + 1; } // 调用方法计算数组元素之和 int sum = sum(numbers); // 输出数组元素和 System.out.println("数组元素之和为:" + sum); } // 定义一个计算整型数组元素之和的方法 public static int sum(int[] numbers) { int sum = 0; for (int number : numbers) { sum += number; } return sum; } } ``` 运行结果为: ``` 数组元素之和为:15 ``` 五、实验总结 通过本次实验,我们学习了数组方法基本概念和使用方法,掌握了数组方法的定义和调用方式,并且了解了它们的使用场景和优劣。在实际的程序设计中,合理使用数组方法可以提高代码的复用性和可维护性,使程序更加清晰简洁。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值