寻找数组的中心索引

  1. 给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。
  2. 我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。
  3. 如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。
  4. 示例 1:
  5. 输入:
  6. nums = [1, 7, 3, 6, 5, 6]
  7. 输出: 3
  8. 解释:
  9. 索引3 (nums[3] = 6) 的左侧数之和(1 + 7 + 3 = 11),与右侧数之和(5 + 6 = 11)相等。
  10. 同时, 3 也是第一个符合要求的中心索引。
  11. 示例 2:
  12. 输入:
  13. nums = [1, 2, 3]
  14. 输出: -1
  15. 解释:
  16. 数组中不存在满足此条件的中心索引。
  17. 说明:
  18. nums 的长度范围为 [0, 10000]。
  19. 任何一个 nums[i] 将会是一个范围在 [-1000, 1000]的整数。
  1. class Solution {
  2. public int pivotIndex(int[] nums) {
  3. int lsum = 0,rsum = 0,sum =0;
  4. for(int i : nums){
  5. sum+=i;
  6. }
  7. for(int j=0;j<nums.length;j++){
  8. if(j==0)lsum =0;
  9. else
  10. lsum+=nums[j-1];
  11. rsum = sum- lsum -nums[j];
  12. if(lsum == rsum)return j;
  13. }
  14. return -1;
  15. }
  16. }

至少是其他数字两倍的最大数

  1. 在一个给定的数组nums中,总是存在一个最大元素
  2. 查找数组中的最大元素是否至少是数组中每个其他数字的两倍。
  3. 如果是,则返回最大元素的索引,否则返回-1
  4. 示例 1:
  5. 输入: nums = [3, 6, 1, 0]
  6. 输出: 1
  7. 解释: 6是最大的整数, 对于数组中的其他整数,
  8. 6大于数组中其他元素的两倍。6的索引是1, 所以我们返回1.
  9. 示例 2:
  10. 输入: nums = [1, 2, 3, 4]
  11. 输出: -1
  12. 解释: 4没有超过3的两倍大, 所以我们返回 -1.
  1. class Solution {
  2. public int dominantIndex(int[] nums) {
  3. if(nums.length==1)return 0;
  4. int max = -1,index=-1,sum=0;boolean f=true;
  5. for(int j=0;j<nums.length;j++){
  6. if(max<nums[j]) {
  7. max = nums[j];
  8. index = j;
  9. }
  10. sum+=nums[j];
  11. }
  12. if(sum==max)return index;
  13. for(int j=0;j<nums.length;j++){
  14. if(nums[j]==0||nums[j]==max)continue;
  15. if(max%nums[j]!=0 && max/nums[j]<2) f=false;
  16. }
  17. return f?index:-1;
  18. }
  19. }

加一

  1. 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
  2. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。
  3. 你可以假设除了整数 0 之外,这个整数不会以零开头。
  4. 示例 1:
  5. 输入: [1,2,3]
  6. 输出: [1,2,4]
  7. 解释: 输入数组表示数字 123
  8. 示例 2:
  9. 输入: [4,3,2,1]
  10. 输出: [4,3,2,2]
  11. 解释: 输入数组表示数字 4321
  1. import java.math.BigDecimal;
  2. class Solution {
  3. public int[] plusOne(int[] digits) {
  4. int len = digits.length;
  5. String numStr = "";
  6. for(int i=0;i<len;i++){
  7. numStr += digits[i]+"";
  8. }
  9. BigDecimal num = new BigDecimal(numStr).add(new BigDecimal(1));
  10. numStr = num.toString()+"";
  11. int[] arr = new int[numStr.length()];
  12. for(int i=0;i<numStr.length();i++){
  13. arr[i] =Integer.valueOf(numStr.substring(i,i+1));
  14. }
  15. return arr;
  16. }
  17. }

leetcode 数组的更多相关文章

  1. Leetcode数组题*3

    目录 Leetcode数组题*3 66.加一 题目描述 思路分析 88.合并两个有序数组 题目描述 思路分析 167.两数之和Ⅱ-输入有序数组 题目描述 思路分析 Leetcode数组题*3 66.加 ...

  2. LeetCode 数组分割

    LeetCode 数组分割 LeetCode 数组怎么分割可以得到左右最大值的差值的最大 https://www.nowcoder.com/study/live/489/1/1 左右最值最大差 htt ...

  3. LeetCode数组中重复的数字

    LeetCode 数组中重复的数字 题目描述 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次. ...

  4. LeetCode数组解题模板

    一.模板以及题目分类 1.头尾指针向中间逼近 ; ; while (pos1<pos2) { //判断条件 //pos更改条件 if (nums[pos1]<nums[pos2]) pos ...

  5. LeetCode数组查找问题

    简单的二分查找法:(Leetcode704): 注意条件(low<=high) public int search(int[] nums, int target) { int low=0; in ...

  6. leetcode 数组类型题总结

    1,removeDuplicates(I) int removeDuplicatesI(vector<int>& nums){ // 重新组织数组,同 removeDuplicat ...

  7. leetcode 数组 (python)

    1.题目描述 给定一个范围在  1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数 ...

  8. leetcode 数组类型题

    // ConsoleApplication1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h& ...

  9. LeetCode——数组篇:659. 分割数组为连续子序列

    659. 分割数组为连续子序列 输入一个按升序排序的整数数组(可能包含重复数字),你需要将它们分割成几个子序列,其中每个子序列至少包含三个连续整数.返回你是否能做出这样的分割? 示例 1: 输入: [ ...

  10. leetcode 数组array

    120. Triangle 给出一个三角形(数据数组),找出从上往下的最小路径和.每一步只能移动到下一行中的相邻结点上. 解法,自底向上 The idea is simple. Go from bot ...

随机推荐

  1. SpringDataRedis的简单案例使用

    一.SpringDataRedis环境搭建 第一步.导入坐标 <!-- 缓存 --> <dependency> <groupId>redis.clients< ...

  2. Hadoop(三)—— YARN

    YARN产生的背景 Hadoop相关概念 Hadoop 1.0 由HDFS.MapReduce组成. Hadoop 2.0 克服1.0中HDFS和MapReduce存在的各种问题而提出的. YARN是 ...

  3. Oracle存储过程 函数 计算使用资源

    目录 存储过程与函数 存储过程的优势 存储过程 打印语句 选择语句 函数 计算使用资源 存储过程与函数 存储过程的优势 存储过程 /* 多行注释 */ -- 单行注释 //展示错误信息 show er ...

  4. 迁移Git项目到Gitlab

    假定Gitlab已经安装, 假定要迁移的Git项目目录为 demo 首先在Gitlab里创建一个新的project, 名称为demo (或者其他名称都可以) 然后在现有的Git项目目录下, 进行以下操 ...

  5. vue 框架安装系列问题

    npm install --global vue-cli 错误提示:vue-cli-service' 不是内部或外部命令,也不是可运行的程序或批处理文件解决:如果是npm安装的 执行 npm -g b ...

  6. Excel统计发票和金税盘核对新版

    之前的博文:如何使用Excel表格状态栏动态查看统计,介绍了如何利用excel一拉就可以进行统计,和金税盘的月度统计统计.由于最近年月日显示成方框,所以作废了发票和对冲了上月的一张发票,导致这个月出现 ...

  7. [LeetCode] 121. Best Time to Buy and Sell Stock 买卖股票的最佳时间

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  8. [LeetCode] 556. Next Greater Element III 下一个较大的元素 III

    Given a positive 32-bit integer n, you need to find the smallest 32-bit integer which has exactly th ...

  9. burpsuite证书生成和导入

    官网下载个社区版,基本还是够用的 配置代理的ip和port,选择根证书生成方式 访问配置的ip:port,下载证书 双击下载的证书,导入keychain 打开keychain,信任根证书 再次使用bu ...

  10. npm 私服工具verdaccio 搭建

    npm私服搭建的必要性 1.如果公司处于隐私保护的需要,不想讲自己封的包推到npm社区,但又急需要一套完整的包管理工具来管理越来越多的组件,模块,项目.对于前端,最熟悉的莫过于npm,bower等,但 ...