![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数组
文章平均质量分 57
为什么会这样1994
为什么bug 和 春天的柳絮一样多到数不清
展开
-
268. 缺失数字Leetcode
给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1] 输出: 2 示例 2:输入: [9,6,4,2,3,5,7,0,1] 输出: 8 说明: 你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?思路:解决这道题我首先将数字排序,然后利用前后如果不缺少数字的话后面那个数减去...原创 2018-08-22 20:00:34 · 172 阅读 · 0 评论 -
7.反转数字Leecode
给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21public class Reverse { public static void main(String[] args) { int a = reverse(1534...原创 2018-08-07 22:02:22 · 134 阅读 · 0 评论 -
88. 合并两个有序数组Leetc
给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 ...原创 2018-10-09 17:16:01 · 167 阅读 · 0 评论 -
1. 两数之和
文章目录题目描述思路及解答暴力求解(双指针法)( O($n^2$) )哈希表( O(n) )题目描述给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...原创 2018-11-13 17:35:21 · 144 阅读 · 1 评论 -
167. 两数之和Ⅱ Leetcode
文章目录题目描述思路及解答题目描述给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2...原创 2018-11-14 11:31:02 · 102 阅读 · 0 评论 -
283. 移动零Leetcode
文章目录题目描述思路及解答题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。思路及解答/** 思路:* 需要一个变量k,用来表明当前需要移动的0的位置* 当前需要移动的0和后面的每一位数进...原创 2018-11-20 15:49:42 · 74 阅读 · 0 评论 -
27. 移除元素Leetcode
文章目录题目描述思路及解答题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2...原创 2018-11-20 17:10:30 · 115 阅读 · 0 评论 -
26. 删除排序数组中的重复项Leetcode
文章目录题目描述思路及解答题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面...原创 2018-11-21 15:43:15 · 119 阅读 · 0 评论 -
345.反转字符串中的元音字母Leetcode
文章目录题目描述思路及解答题目描述编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: “hello”输出: “holle”示例 2:输入: “leetcode”输出: “leotcede”说明:元音字母不包含字母"y"。思路及解答/*思路:使用双指针法如果遇到前面的指针和后面的指针都遇到元音则交换*/class Solution { ...原创 2018-12-12 16:14:12 · 124 阅读 · 0 评论 -
75.颜色的分类Leetcode
文章目录题目描述思路及解答题目描述给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用...原创 2018-12-05 21:29:20 · 143 阅读 · 0 评论 -
11.盛水最多的容器Leetcode
文章目录题目描述思路及解答题目描述给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。...原创 2018-12-13 15:54:48 · 146 阅读 · 0 评论 -
9.回文数 Leetcode
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文...原创 2018-08-08 14:39:45 · 142 阅读 · 0 评论 -
14. 最长公共前缀Leetcode
/*思路:最长公共前缀的意思就是从第一个字母开始的每个字符串相同的前缀1、首先找到最短的那个字符串的长度和最短的那个字符串的下标2、用两个循环 第一个循环,遍历每个字符串的第i个字母 第二个玄幻,遍历每个字符串3、判断每个字符串的第i个字符是否相等,如果发现第一个字母中有不想等的,直接返回“”;如果发现第一个字符后面有不相等的,返回前面相同前缀;如果发现全都相等,则...原创 2018-09-22 16:19:46 · 172 阅读 · 0 评论 -
15.三数之和Leetcode
一、题意 给定一个包含 n 个整数的数组 S,是否存在属于 S 的三个元素 a,b,c 使得 a + b + c = 0 ?找出所有不重复的三个元素组合使三个数的和为零。注意:结果不能包括重复的三个数的组合。例如, 给定数组 S = [-1, 0, 1, 2, -1, -4],一个结果集合为: [ [-1, 0, 1], [-1, -1, 2] ] 第一种解法(...原创 2018-08-22 20:03:29 · 175 阅读 · 0 评论 -
448. 找到所有数组中消失的数字Leetcode
/*思路:因为时间复杂度为O(n),所以不能因为空间复杂度为O(1),所以不能使用额外的数组或者其他的数据结构来存放,只能在原来的数组的基础上进行修改在这里,如果第一个数字是4,我们把对应下标为3的那个数置为负数,一直循环到最后最后循环遍历修改过的数组,如果对应下标这个数为负数说明数等于下标+1这个数出现过*/class Solution { public List<...原创 2018-08-20 15:35:42 · 421 阅读 · 0 评论 -
66.加一Leetcode
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321...原创 2018-08-16 08:48:14 · 263 阅读 · 0 评论 -
53.最大子序和Leetcode
思路一:暴力求解(O(n^3))class Solution { public int maxSubArray(int[] nums) { int maxSum = 0; for(int start = 0; start < nums.length; start++){//确定子序列的起点 ...原创 2018-08-14 10:13:27 · 145 阅读 · 0 评论 -
888. 公平的糖果交换Leetcode
爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 块糖的大小,B[j] 是鲍勃拥有的第 j 块糖的大小。 因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们&amp;amp;amp;gt;拥有的糖果棒大小的总和。) 返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换...原创 2018-08-30 16:53:27 · 359 阅读 · 0 评论 -
78.子集Leetcode
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]/*思路:位操作法对于数组[1,2,3]可以用0表示未选中,1表...原创 2018-08-28 14:45:22 · 443 阅读 · 0 评论 -
16. 最接近的三数之和Leetcode
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2)./*思路:(前面做过三...原创 2018-09-01 16:14:46 · 129 阅读 · 0 评论 -
18. 四数之和Leetcode
/** 思路: 四数之和转化为三数之和来做 思路和三数之和一样 */ class Solution { public List原创 2018-09-02 11:51:38 · 160 阅读 · 0 评论 -
31. 下一个排列 Leetcode
实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。 1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,1/*思路:1、从后向前遍历,找到第一个不满...原创 2018-09-09 16:54:03 · 158 阅读 · 0 评论 -
33. 搜索旋转排序数组Leetcode
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], targ...原创 2018-09-19 14:59:39 · 287 阅读 · 0 评论 -
125.验证回文串Leetcode
文章目录题目描述思路及解答题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false思路及解答/*思路:定义两个指针left和right,...原创 2018-12-10 20:44:33 · 117 阅读 · 0 评论