leetcode问题解决
呆萌的小透明
这个作者很懒,什么都没留下…
展开
-
leetcode 1588. 所有奇数长度子数组的和--Java、Python以及Scala语言的实现
问题描述给你一个正整数数组arr ,请你计算所有可能的奇数长度子数组的和。子数组定义为原数组中的一个连续子序列。请你返回arr中所有奇数长度子数组的和 。输入:arr = [1,4,2,5,3]输出:58解题思路首先循环遍历数组arr的可能长度i(i为奇数),接着在循环遍历数组arr中的每一个元素下标j,求和j到(i+j)的元素(不包含(i+j),并且(i+j)<=arr.length)。Java 代码 public int sumOddLengthSubarrays(in原创 2020-09-21 17:01:56 · 379 阅读 · 1 评论 -
leetcode LCP 06. 拿硬币--Java、Python以及Scala语言的实现
问题描述桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。输入:[4,2,1]输出:4解题思路首先定义一个结果变量res。接着循环遍历coins,coins中的每个数除以2(浮点数除法,向上取整)的值加到res上。Java 代码 public int minCount(int[] coins) { int res = 0; // 初始化结果变量 for(int原创 2020-09-16 14:30:10 · 162 阅读 · 0 评论 -
leetcode 1108. IP 地址无效化--Java、Python以及Scala语言的实现
问题描述给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。所谓无效化 IP 地址,其实就是用 “[.]” 代替了每个 “.”。输入:address = “1.1.1.1”输出:“1[.]1[.]1[.]1”解题思路-首先定义一个字符串变量res。接着循环遍历address,如果当前字符c为’.’,则res存入"[/]",否则存入c。Java 代码 public String defangIPaddr(String address){ S原创 2020-09-15 20:54:36 · 212 阅读 · 0 评论 -
leetcode 771. 宝石与石头--Java、Python以及Scala语言的实现
问题描述给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。输入:J = “aA”, S = “aAAbbbb”输出:3解题思路首先定义一个结果变量res。循环遍历字符串S,判断S中的字符是否在J中,如果在则res+1Java 代码 public int numJewelsInSto原创 2020-09-15 20:09:51 · 112 阅读 · 0 评论 -
leetcode 1165. 单行键盘--Java、Python以及Scala语言的实现
问题描述我们定制了一款特殊的力扣键盘,所有的键都排列在一行上。我们可以按从左到右的顺序,用一个长度为 26 的字符串 keyboard (索引从 0 开始,到 25 结束)来表示该键盘的键位布局。现在需要测试这个键盘是否能够有效工作,那么我们就需要个机械手来测试这个键盘。最初的时候,机械手位于左边起第一个键(也就是索引为 0 的键)的上方。当机械手移动到某一字符所在的键位时,就会在终端上输出该字符。机械手从索引 i 移动到索引 j 所需要的时间是 |i - j|。当前测试需要你使用机械手输出指定的单词原创 2020-09-15 18:11:55 · 495 阅读 · 0 评论 -
leetcode LCP 17. 速算机器人--Java和Python语言的实现
问题描述小扣在秋日市集发现了一款速算机器人。店家对机器人说出两个数字(记作x和y),请小扣说出计算指令:“A” 运算:使 x = 2 * x + y;“B” 运算:使 y = 2 * y + x。在本次游戏中,店家说出的数字为 x = 1 和 y = 0,小扣说出的计算指令记作仅由大写字母 A、B 组成的字符串 s,字符串中字符的顺序表示计算顺序,请返回最终 x 与 y 的和为多少。输入:s = “AB”输出:4解题思路循环遍历s,按照题目给的公式计算x,y即可。Java 代码原创 2020-09-14 10:53:36 · 159 阅读 · 0 评论 -
leetcode 760. 找出变位映射--Java和Python语言的实现
问题描述给定两个列表 A和B,并且B是A的变位(即B是由 A 中的元素随机排列后组成的新列表)。我们希望找出一个从A到B的索引映射P。一个映射 P[i] = j 指的是列表 A 中的第 i 个元素出现于列表 B 中的第 j 个元素上。列表A和B可能出现重复元素。如果有多于一种答案,输出任意一种。输入:A = [12, 28, 46, 32, 50] B = [50, 12, 32, 46, 28]输出:[1, 4, 3, 2, 0]解题思路使用一个双重循环就能解决这个问题。外层循环使用变量i原创 2020-09-14 09:18:53 · 125 阅读 · 0 评论 -
leetcode LCP 01. 猜数字--Java和Python语言的实现
问题描述小A 和 小B 在玩猜数字。小B每次从1, 2, 3 中随机选择一个,小A每次也从1, 2, 3中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为小A每次的猜测,answer数组为小B每次的选择。guess和answer的长度都等于3。输入:guess = [1,2,3], answer = [1,2,3]输出:3解题思路首先定义一个结果变量res,接着循环遍历guess和answer数组,如果guess[i]==answer[i],res的值加原创 2020-09-11 19:35:20 · 121 阅读 · 0 评论 -
leetcode 1572. 矩阵对角线元素的和--Java和Python语言的实现
问题描述给你一个正方形矩阵mat,请你返回矩阵对角线元素的和。请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。输入:mat = [[1,2,3],[4,5,6],[7,8,9]]输出:25解题思路首先定义一个结果变量res,接着遍历矩阵的每一行。若当前处在矩阵的第i行,那么将mati,imat_{i,i}mati,i以及mati,(矩阵行数−1−i)mat_{i,(矩阵行数-1-i)}mati,(矩阵行数−1−i)加到res上。若矩阵的行数是奇数则需要减去最中间的元素原创 2020-09-11 17:03:20 · 299 阅读 · 0 评论 -
leetcode 1486. 数组异或操作--Java和Python语言的实现
问题描述给你两个整数,n和start。数组nums定义为:nums[i] = start + 2*i(下标从0开始)且n==nums.length 。请返回nums中所有元素按位异或(XOR)后得到的结果。输入:n = 5, start = 0输出:8解题思路从0开始遍历到n-1,依次求解num[i],接着获得到第i个数的异或值(初始结果值为0,0与任何值异或值为其本身)。Java 代码public int xorOperation(int n, int start) {原创 2020-09-11 14:23:15 · 187 阅读 · 0 评论 -
leetcode 1470. 重新排列数组--Java和Python语言的实现
问题描述给你一个数组nums,数组中有2n个元素,按 [x1,x2,…,xn,y1,y2,…,yn]的格式排列。请你将数组按[x1,y1,x2,y2,…,xn,yn]格式重新排列,返回重排后的数组。输入:nums = [2,5,1,3,4,7], n = 3输出:[2,3,5,4,1,7]解题思路定义一个结果数组res,存放排序后的数组。首先循环遍历nums数组中的前n个元素,依次将nums数组中的第i个元素、第n+i个元素存入res中。Java 代码 public int[]原创 2020-09-11 11:09:54 · 345 阅读 · 0 评论 -
leetcode 1512. 好数对的数目--Java和Python语言的实现
问题描述给你一个整数数组nums。如果一组数字(i,j) 满足 nums[i] == nums[j] 且 i < j,就可以认为这是一组好数对。返回好数对的数目。输入:nums = [1,2,3,1,1,3]输出:4解题思路首先统计每一个数字出现的次数,假设数字1出现n次,那么由数字1出现的好数对的数目为:(n * (n-1))/2, 也就是等差数列求和。Java 代码 public int numIdenticalPairs(int[] nums){ HashM原创 2020-09-11 09:38:00 · 356 阅读 · 0 评论 -
leetcode 1431. 拥有最多糖果的孩子--Java和Python语言的实现
问题描述给你一个数组candies和一个整数extraCandies,其中candies[i]代表第i个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的extraCandies个糖果分配给孩子们之后,此孩子有最多的糖果。注意,允许有多个孩子同时拥有最多的糖果数目。 输入:candies = [2,3,5,1,3], extraCandies = 3 输出:[true,true,true,false,true] 解题思路首先获取candies数组中的最大值maxNu原创 2020-09-10 18:13:04 · 222 阅读 · 0 评论 -
leetcode 1119. 删去字符串中的元音--Java和Python语言的实现
问题描述给你一个字符串 S,请你删去其中的所有元音字母( 'a','e','i','o','u'),并返回这个新字符串。例子:输入:"leetcodeisacommunityforcoders"输出:"ltcdscmmntyfrcdrs"解题思路首先定义一个新的输出字符串res,接着循环遍历输出字符串S判断S中的每一个字符串是否为元音字母,如果不是元音字母则存入res中。Java 代码public String removeVowels(String S){ char[] arr原创 2020-09-10 17:06:09 · 954 阅读 · 0 评论 -
leetcode 1480. 一维数组的动态和--Java和Python语言的实现
问题描述给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。例子:输入:nums = [1,2,3,4]输出:[1,3,6,10]计算过程:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4]解题思路这是一道简单难度的问题,结果数组中第i个元素也就是输入nums数组中第0个元素累加到第i个元素(包括第i个元素)。我们只需要遍历一遍nums数组,在遍历的过程中使用curren原创 2020-09-10 14:45:33 · 265 阅读 · 0 评论