LeetBook之数组

LeetBook系列文章记录

第一本 数组与字符串
学习地址


前言

作为计算机的学生,对自己的技术实在是感到无奈,下定决心好好学习,写博客也算是对自己小小的记录吧,希望自己能坚持下去。


一、数组简介

1、集合、列表和数组

具体的概念大家可以自行阅读

以上就是集合、列表和数组的介绍,你能自己总结出它们的不同点吗?
对这个问题我的想法是:
1、集合里的元素类型不一定相同,里面的元素没有顺序
2、列表中元素可能不一定相同,有顺序
3、数组是连续存储的带有索引的

2、数组的操作

个人认为这里算是一个小重点了,虽然是听起来的增删改查但是还是要稍微注意下索引都是从0开始的
尤其是在写题目的时候 总是会遇到增删改查以后还需要再排序的操作。

二、 三个代码题目

1.寻找数组的中心索引

数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。

代码示例1:

输入:nums = [1, 7, 3, 6, 5, 6]
输出:3
解释:
中心下标是 3 。
左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,
右侧数之和 sum = nums[4] + nums[5] = 5 + 6 = 11 ,二者相等。

代码示例2:

输入:nums = [1, 2, 3]
输出:-1
解释:
数组中不存在满足此条件的中心下标。

代码示例3: 个人认为这里是比较重要的考虑点

输入:nums = [2, 1, -1]
输出:0
解释:
中心下标是 0 。
左侧数之和 sum = 0 ,(下标 0 左侧不存在元素),
右侧数之和 sum = nums[1] + nums[2] = 1 + -1 = 0 。

代码如下

代码如下(示例):

//我也是参考了下面的回答才做出来的 我太菜了呜呜呜
class Solution {
    public int pivotIndex(int[] nums) {
    int sum=0;
    for(int i=0;i< nums.length;i++)
    {
        sum+=nums[i];
    }
    //此处是针对右边全为0的情况设置的
    if(nums[0]==sum)
    {
          return 0;
    }
    int left_sum=0;
    for(int i=0;i<nums.length;i++)
    {
         sum-=nums[i];
         if(left_sum==sum){
             return i;
         }
         left_sum+=nums[i];
    }
        return -1;
    }
    
}

2.搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

代码示例1:

输入: nums = [1,3,5,6], target = 5
输出: 2

代码示例2:

输入: nums = [1,3,5,6], target = 2
输出: 1

代码示例3:

输入: nums = [1,3,5,6], target = 7
输出: 4

在提示中有一个非常重要的考虑点

代码如下

代码如下(示例):

//这个题我自己写出来的 哈哈哈
class Solution {
    public int searchInsert(int[] nums, int target) {
           for(int i=0;i<nums.length;i++)
           {

           if(target<=nums[i])//这里如果是 == 的话就不会有升序的效果
                   return i; 
           }  
            return nums.length;
    }
  
}

3.合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

代码示例1:

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [1,3][2,6] 重叠, 将它们合并为 [1,6].

代码示例2:

输入:intervals = [[1,4],[4,5]]
输出:[[1,5]]
解释:区间 [1,4][4,5] 可被视为重叠区间。

代码如下

代码如下(示例):

//这题我纯纯不会做 技术不到家 回头再好好看看学习学习
//希望有好哥们带带我

总结

以上就是我今天的学习内容,当然这只是小部分哈哈,明天加油
明天继续狠狠的学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值