LeetCode
磊助
欢迎大家进行技术上的交流
展开
-
统计字符串出现次数最多的字母和出现的次数
统计字符串出现次数最多的字母和出现的次数原创 2023-04-03 19:28:33 · 374 阅读 · 0 评论 -
LeetCode第53题
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。思路:可以初始化两个Sum和curSum,其中,Sum表示的是最大和,curSum表示的是当前的和。如果curSum<0,则让它等于数组中的下...原创 2018-12-28 13:43:40 · 223 阅读 · 0 评论 -
LeetCode第35题
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], ...原创 2018-12-28 13:14:32 · 318 阅读 · 0 评论 -
LeetCode第268题
给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8思路:可以从数学的角度来思考这个问题。0+1+2+ …+n 的总和是 (0+n)*((n+1)/2),这个和未sum,然后求出数组的和sum1,...原创 2018-12-11 10:31:29 · 174 阅读 · 0 评论 -
LeetCode第448题
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]思路:1.遍历...原创 2018-12-27 16:52:30 · 261 阅读 · 0 评论 -
LeetCode第209题
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例: 输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。思路:这个题可以采用滑动窗口的方法来解决。1.首先定义一个最左边的起始位置left作为标...原创 2018-12-11 09:06:13 · 1973 阅读 · 0 评论 -
LeetCode第75题
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]思路:这个题采用计数排序就可以解决。 public ...原创 2018-12-27 15:24:40 · 232 阅读 · 0 评论 -
LeetCode第350题
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]思路:1.将两个数组排序2.分别遍历两个数组,并依次比较元素的大小,若nums1中的元素大的话,则nums2中的索...原创 2018-12-27 14:58:48 · 137 阅读 · 0 评论 -
LeetCode第728题
自除数 是指可以被它包含的每一位数除尽的数。例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。还有,自除数不允许包含 0 。给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。示例 1:输入: 上边界left = 1, 下边界right = 22输出: [1, 2, 3, 4, 5,...原创 2018-12-16 14:28:42 · 139 阅读 · 0 评论 -
LeetCode第349题
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]思路:可以利用HashSet来存储两个数组的交集。1.依次遍历两个数组的数字,如果两个数组中的数字相等,则存入到Set...原创 2018-12-10 16:20:10 · 208 阅读 · 0 评论 -
LeetCode第125题
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false思想:可以使用两个指针,一个指针从第一个元素开始,一个指针从最后一个元素开始,期...原创 2018-12-10 15:11:12 · 384 阅读 · 0 评论 -
LeetCode第389题
给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。 示例:输入:s = "abcd"t = "abcde"输出:e解释:'e' 是那个被添加的字母。1.将两个字符串转化为字符数组的形式。2.将2个数组进行排序。3.遍历s字符串转化的数组,如果字符不同,则输出...原创 2018-12-16 00:10:43 · 286 阅读 · 0 评论 -
LeetCode第942题
给定只含 "I"(增大)或 "D"(减小)的字符串 S ,令 N = S.length。返回 [0, 1, ..., N] 的任意排列 A 使得对于所有 i = 0, ..., N-1,都有:如果 S[i] == "I",那么 A[i] < A[i+1] 如果 S[i] == "D",那么 A[i] > A[i+1] 示例 1:输出:"IDID"输出:[0,原创 2018-12-14 20:13:17 · 179 阅读 · 0 评论 -
LeetCode第118题
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。public static List<List<Integer>> generate(int numRows){ List<List<Integer>> list=new ArrayList<List<Integer>>(); int[][]...原创 2018-12-19 09:14:07 · 155 阅读 · 0 评论 -
LeetCode第867题
给定一个矩阵 A, 返回 A 的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:[[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]思路:原二维数组A是m行n列,目标数组r...原创 2018-12-19 09:40:28 · 254 阅读 · 0 评论 -
小米二面手撕算法题
今天参加小米二面,面试官让手撕一道算法题,感觉这道算法题挺有意义的,所以还是分享出来。题目如下这道题目的思路可能会很简单,但是里面的细节可能会要重视一下,我自己写的代码如下,代码能够全部通过。话不多说,直接上代码。public static void main(String[] args) { // TODO Auto-generated method stub Scanne...原创 2019-09-11 19:39:48 · 1770 阅读 · 0 评论 -
LeetCode第34题
描述:给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(logn) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:输入: nums = [5,7,7,...原创 2019-03-13 08:57:26 · 390 阅读 · 0 评论 -
LeetCode 第88题
描述:给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3n...原创 2019-03-12 18:53:03 · 277 阅读 · 0 评论 -
LeetCode第11题
描述:给定n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能...原创 2019-03-16 09:21:23 · 447 阅读 · 0 评论 -
LeetCode 第3题 java
描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重...原创 2019-03-16 09:04:06 · 937 阅读 · 0 评论 -
LeetCode第283题
描述:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]解题思路:遍历数组,将所有非0的数依次放到数组的前面,遍历完成后,假设非0的元素的个数为i个,数组元素为n,再次遍历数组n-i次,将数组中剩余的其他位置置为0,这种思路也是比较简单可行的。代码如下:pu...原创 2019-03-02 22:56:12 · 138 阅读 · 0 评论 -
LeetCode第485题
描述:给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.解题思路:定义一个result变量用来存取结果的值,定义一个“哨兵”now用来记录数组中连续元素1的个数,当遍历完数组的时候,result的值即为数组中最大连续1的个数。代码如下:public ...原创 2019-03-02 22:34:02 · 220 阅读 · 0 评论 -
LeetCode第179题
描述:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 1:输入: [10,2]输出: 210示例 2:输入: [3,30,34,5,9]输出: 9534330说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。public String largestNumber(int[] nums){ String[] str=new S...原创 2019-02-20 13:42:36 · 240 阅读 · 0 评论 -
LeetCode第633题
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。示例1:输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5 示例2:输入: 3输出: Falsepublic static boolean judgeSquareSum(int c){ int i=0,j=(int)Math.sqrt(c); ...原创 2019-01-30 10:33:32 · 550 阅读 · 0 评论 -
LeetCode第167题
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15],...原创 2019-01-30 10:11:48 · 140 阅读 · 0 评论 -
LeetCode第888题
爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 块糖的大小,B[j] 是鲍勃拥有的第 j 块糖的大小。因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大小。如果有多个...原创 2018-12-19 10:47:26 · 186 阅读 · 0 评论 -
LeetCode第896题
如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。当给定的数组 A 是单调数组时返回 true,否则返回 false。 示例 1:输入:[1,2,2,3]输出:true示例 2:...原创 2018-12-19 10:01:46 · 145 阅读 · 0 评论 -
LeetCode第4题
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中...原创 2018-12-20 11:07:53 · 1117 阅读 · 1 评论 -
LeetCode第905题
给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。你可以返回满足此条件的任何数组作为答案。 示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。思路:利用了简单选择排序的思想,即取第一个偶数放到第一个位置,第二个偶数放到第二个位置,以此类推。。...原创 2018-12-13 17:10:32 · 150 阅读 · 0 评论 -
LeetCode第28题
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needl...原创 2018-12-03 18:31:52 · 318 阅读 · 0 评论 -
LeetCode第21题
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路:同时遍历两个链表,并对两个链表进行比较。将值小的存到新的链表中,当其中一个链表比较完为空时,将另一个链表的剩下的值全部存到新的链表中。 pu...原创 2018-11-24 16:25:23 · 281 阅读 · 0 评论 -
LeetCode第七题
给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21思路1:将翻转后的整数输出出来public int reverse(int x){ int tmp=Math.abs(x); int result=0; ...原创 2018-11-20 11:28:33 · 158 阅读 · 0 评论 -
LeetCode第26题
题目:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/思路:可以定义两个指针i,j。i指向第0个位置,j指向第1个位置,开始进行比较。如果nums[i]和nums[j]相等,则j++,否则i++。代码如下。public int removeDuplicates(int[] nums){ in...原创 2018-11-22 15:18:39 · 154 阅读 · 0 评论 -
LeetCode第217题
给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true思路:先对数组进行排序,然后挨个比...原创 2018-11-22 14:34:57 · 124 阅读 · 0 评论 -
LeetCode第258题
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2 解释: 各位相加的过程为:3 + 8 = 11,1 + 1 = 2。 由于2 是一位数,所以返回 2。思路:由题意可知,超过10的数其实是减9的一个过程。例如10是1+0=1,减一个9,23是2+3=5,减2个9,,,,,,但是要考虑0的情况和9的倍数的情况,因为它们的mod...原创 2018-11-22 14:06:18 · 175 阅读 · 0 评论 -
LeetCode第263题
描述:编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例 1:输入: 6输出: true解释: 6 = 2 × 3示例 2:输入: 8输出: true解释: 8 = 2 × 2 × 2示例 3:输入: 14输出: false 解释: 14 不是丑数,因为它包含了另外一个质因数 7思路:1.丑数是正整数2...原创 2018-11-22 13:45:17 · 119 阅读 · 0 评论 -
LeetCode第229题
描述:给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。示例 1:输入: [3,2,3]输出: [3]示例 2:输入: [1,1,1,3,3,2,2,2]输出: [1,2]思路:运用HashMap来解决这个问题,这道题跟第137,287题性质是一样的。1.遍历数组,...原创 2018-11-22 13:24:04 · 156 阅读 · 0 评论 -
LeetCode第287题
给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3思路:运用HashMap来解决这个问题,这道题跟第137题性质是一样的。1.遍历数组,将数组中的...原创 2018-11-22 11:13:54 · 177 阅读 · 0 评论 -
LeetCode第627题
给定一个 salary表,如下所示,有m=男性 和 f=女性的值 。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求使用一个更新查询,并且没有中间临时表。例如:| id | name | sex | salary ||----|------|-----|--------|| 1 | A | m | 2500 || 2 | B | ...原创 2018-11-22 11:00:34 · 183 阅读 · 0 评论 -
LeetCode第137题
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]输出: 99思路:可以采用HanshMap来进行存储。1.首先遍历数组,将数组中的值作为ke...原创 2018-11-22 09:45:18 · 330 阅读 · 0 评论