栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数组基本方法的总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数组基本方法的总结

数组基本方法的总结
  • 1.数组的优缺点
    • 1.1 优点
    • 1.2缺点
  • 2.数组使用的基本方法
    • 2.1 两数之和
    • 2.2 删除有序数组中的重复项
    • 2.3 移除元素
    • 2.4 最大子数组和

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 
2.2 删除有序数组中的重复项 

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

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

class Solution {
    public int removeDuplicates(int[] nums) {
        int slow = 0;//定义一个慢指针
        for(int i =1;i 
2.3 移除元素 

leetcode:移除元素

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

class Solution {
    public int removeElement(int[] nums, int val) {
        int p =0;      
        for( int i =0;i 
2.4 最大子数组和 

leetcode:最大子数组和

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

class Solution {
    
    public int maxSubArray(int[] nums) {
        int sum = 0;
        int ans = nums[0];
        
        for(int i =0;i0){
                sum+=nums[i];
            }else{
                sum=nums[i];
            }
            ans = Math.max(ans,sum);//不管sum大于0或者小于0,都要与上一次较大的ans比较,取出较大的值,因此不用担心正数加一个负数变小的问题
        }
        return ans;
    }
}

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/678134.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号