首页 > 其他分享 >数组和字符串

数组和字符串

时间:2023-04-28 22:15:11浏览次数:24  
标签:下标 nums sum 元素 索引 数组 字符串

数组操作

读取数组中的元素,是通过访问索引的方式来读取的,一般从0位置开始。

对于数组,计算机在内存中为其申请一段 连续 的空间,且会记下索引为0处的内存地址。主要的四种操作为:读取,查找,插入和删除元素。

1.寻找数组的中心索引:

给定整数数组nums,计算数组的中心下标(其左侧所有元素相加之和等于右侧元素相加之和,注意这里不包括索引处元素本身)。如果存在多个中心下标,返回最左边的一个,如果不存在中心下标,则返回-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.

输入:nums = [1, 2, 3] 输出:-1

输入:nums = [2, 1, -1] 输出:0

思路:先求出数组总和,然后从左侧元素开始求部分和,通过减法实现与剩下元素之和比较。

class Solution {
public:
    int pivotIndex(vector<int>& nums) {
        int i,sum=0,left_sum=0;
        for(i=0;i<nums.size();i++) sum+=nums[i];
        for(i=0;i<nums.size();i++){
            if(left_sum==sum-left_sum-nums[i]) return i;
            left_sum+=nums[i];
        }
        return -1;
    }
};

 

标签:下标,nums,sum,元素,索引,数组,字符串
From: https://www.cnblogs.com/chordxx/p/17363266.html

相关文章

  • 023 指针数组和数组指针
     /*一:原理二:指针数组三:数组指针*/ 一:原理定义变量:intnum=1;1组合:符号+名称(1)符号:数据类型(2)名称:要操作的数据类型(3)符号为名称所服务的。2优先:(1)默认优先级(2)离符号近(从......
  • 有序数组(类模板)
    一、问题描述:实现一个类模板,它可以接受一组数据,能对数据排序,也能输出数组的内容。每行输入的第一个数字为0,1,2或3:为0时表示输入结束;为1时表示将输入整数,为2时表示将输入有一位小数的浮点数,为3时表示输入字符。如果第一个数字非0,则接下来将输入一个正整数,表示即将输入的数据的......
  • 2023-04-28:将一个给定字符串 s 根据给定的行数 numRows 以从上往下、从左到右进行 Z
    2023-04-28:将一个给定字符串s根据给定的行数numRows以从上往下、从左到右进行Z字形排列比如输入字符串为"PAYPALISHIRING"行数为3时,排列如下PAHNAPLSIIGYIR之后,你的输出需要从左往右逐行读取,产生出一个新的字符串"PAHNAPLSIIGYIR"请你实现......
  • JPA 使用@query 时,判断数组
    一般如果使用@query时,我们的sql是这样的:select*fromtwhere(ifnull(:a,'')=''ort.a=:a)and(ifnull(:b,'')=''ort.b=:b)但如果a参数是一个数组a=[1,2,3],怎么办?ifnull会变成ifnull(1,2,3,'')=''这时我们可以使用  COALESCE(:a)isnu......
  • go语言 数组和切片、可变长参数、maps、字符串、指针、结构体、方法、接口
    数组和切片数组#1定义,初始化,使用#2数组是值类型数字,字符串,布尔,数组,都是值类型,真正直接存数据切片,map,指针引用类型,是个地址,指向了具体的值#3数组长度#4循环打印数组#5多纬数组#6数组定义并赋初值,把第99赋值为1,其他都是0#数组的长度也......
  • 字符串hash
    #include<iostream>#include<string>#include<map>usingnamespacestd;typedefunsignedlonglongull;constintN=1e4+10,P=131;ullh[N],p[N];//注意ull,这样就不要有模数了stringstr;voidinit(){p[0]=1,h[0]=0;for(inti=1,j=str.size(......
  • 将字节数组输入流拷贝成字节数组输出流,将ByteArrayInputStream转成ByteArrayOutputStr
    /**将ByteArrayInputStream拷贝成ByteArrayOutputStream*将字节数组输入流拷贝成字节数组输出流*/publicstaticByteArrayOutputStreamgetByteArrayOutputStream(ByteArrayInputStreaminputStream)throwsIOException{ByteArrayOutpu......
  • 字符串的转化_1
    字符串(str/string)1.转换大小写:.upper/.lowervalue="alexshaobing"new_value=value.upper()#将value转换成大写,并形成新的值print(value,new_value)value="alexSHAOBING"#将value转换成小写,并形成新的值new_value=value.lower()print(value,new_value)#......
  • 二维数组在代码中的应用
    在做人岗架时,最初在需求拟定时,客户信誓旦旦的说一个用户只会属于一个部门的一个岗位,所以设计数据库如下:同时也有用户角色关系表角色表以及用户码表。仅仅隔了半年突然就出现了特殊情况,有多个部门多个岗位为一个用户的情况,主职和兼职的情况。用户唯一标识是手机号,用户也只有......
  • 数字在排序数组中出现的次数
    classSolution{public://二分找出k第一次,最后一个k后面的下标,相减就是答案intgetNumberOfK(vector<int>&nums,intk){intn=nums.size();if(!n)return0;//找到第一个≥k的下标intl=0,r=n-1;while(l<r){......