
编程文章
嘘,淡定点
世上,没有走不通的路,只有想不通的人。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode题库-回文数(java语言版)
题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此...原创 2019-01-17 16:01:37 · 422 阅读 · 0 评论 -
Leetcode题库 ----合并两个有序数组(java语言版)
题目描述: 给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:nums1 = [1,2,3,0,0,0]...原创 2019-03-04 20:05:57 · 1192 阅读 · 0 评论 -
Leetcode题库 - 验证回文串(java语言版)
题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false 这个问题和回文数的那个问题特别相似,不过这个不能用回文数的...原创 2019-03-07 19:44:31 · 344 阅读 · 0 评论 -
Leetcode题库 - 长度最小的子数组(java语言版)
题目描述:给定一个含有n个正整数的数组和一个正整数s ,找出该数组中满足其和≥ s的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组[4,3]是该条件下的长度最小的连续子数组。 这道题刚开始没有思路,就想双重for循环,尝试了一下没有成功...原创 2019-03-11 10:50:17 · 475 阅读 · 0 评论 -
Leetcode题库 - 同构字符串(java语言版)
题目描述:给定两个字符串s和t,判断它们是否是同构的。如果s中的字符可以被替换得到t,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:输入: s = "egg", t = "add"输出: true示例 2:输入: s = "foo", t = ...原创 2019-03-19 18:52:13 · 890 阅读 · 0 评论 -
Leetcode题库 - 根据字符出现频率排序(java语言版)
题目描述:给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。示例 2:输入:"cccaaa"输出:"cccaaa"解释:'c'和'a'都出现三次。此外,"aaac...原创 2019-03-19 19:32:30 · 1601 阅读 · 0 评论 -
Leetcode题库 - 两个数组的交集(java语言版)
题目描述:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。 本题思路...原创 2019-03-11 13:16:48 · 686 阅读 · 0 评论 -
Leetcode题库 - 快乐数(java语言版)
题目描述:编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例:输入: 19输出: true解释: 12 + 92 = 8282 + 22 = 6862 + 82 = 10012 ...原创 2019-03-12 19:03:21 · 663 阅读 · 0 评论 -
Leetcode题库 - 存在重复元素(java语言版)
题目描述:给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 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本题有两种思路都很容...原创 2019-03-12 19:13:08 · 286 阅读 · 0 评论 -
Leetcode题库 - 两个数组的交集2(java语言版)
题目描述:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。 我们可以不考虑输出结果的...原创 2019-03-13 20:23:23 · 645 阅读 · 0 评论 -
Leetcode题库-四数相加2(java语言版)
题目描述:给定四个包含整数的数组列表A , B , C , D ,计算有多少个元组(i, j, k, l),使得A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228到 228- 1 之间,最终结果不会超过231- 1 。例如:输入:...原创 2019-03-25 23:40:39 · 372 阅读 · 0 评论 -
Leetcode题库 - 三数之和(java语言版)
题目描述:给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]] ...原创 2019-03-22 17:59:53 · 262 阅读 · 0 评论 -
Leetcode题库-四数之和(java语言版)
题目描述:给定一个包含n个整数的数组nums和一个目标值target,判断nums中是否存在四个元素a,b,c和d,使得a+b+c+d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要...原创 2019-03-22 19:11:05 · 241 阅读 · 0 评论 -
Leetcode题库-字母异位词分组(java语言版)
题目描述:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。 不考虑答案输出的顺序。 ...原创 2019-03-26 20:41:14 · 496 阅读 · 0 评论 -
Leetcode题库-回旋镖的数量(java语言版)
题目描述:给定平面上n对不同的点,“回旋镖” 是由点表示的元组(i, j, k),其中i和j之间的距离和i和k之间的距离相等(需要考虑元组的顺序)。找到所有回旋镖的数量。你可以假设n最大为500,所有点的坐标在闭区间[-10000, 10000]中。示例:输入:[[0,0],[1,0],[2,0]]输出:2解释:两个回旋镖为 [[1...原创 2019-03-26 20:51:30 · 347 阅读 · 0 评论 -
Leetcode题库-存在重复元素2(java语言版)
题目描述:给定一个整数数组和一个整数k,判断数组中是否存在两个不同的索引i和j,使得nums [i] = nums [j],并且i和j的差的绝对值最大为k。示例1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例 3:输入: nums...原创 2019-03-28 00:11:59 · 233 阅读 · 0 评论 -
Leetcode题库-存在重复元素3(java语言版)
题目描述:给定一个整数数组,判断数组中是否有两个不同的索引i和j,使得nums [i]和nums [j]的差的绝对值最大为t,并且i和j之间的差的绝对值最大为ķ。示例1:输入: nums = [1,2,3,1], k = 3, t = 0输出: true示例 2:输入: nums = [1,0,1,1], k = 1, t = 2输出: tr...原创 2019-03-28 00:30:40 · 317 阅读 · 0 评论 -
Leetcode题库-只存在一次的数字(java语言版)
题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4 本题属于简单题,思路有两个: 第一个思路:查找表map,我首先想到的是...原创 2019-04-02 20:07:26 · 273 阅读 · 0 评论 -
Leetcode题库 - 有效的字母异位词(java语言版)
题目描述:给定两个字符串s和t,编写一个函数来判断t是否是s的一个字母异位词。示例1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。 本题第一种思路和上一篇博客:两数组的交集2很相似,...原创 2019-03-14 17:31:49 · 421 阅读 · 0 评论 -
Leetcode题库 - 盛最多水的容器(java语言版)
题目描述:给定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-09 19:25:27 · 423 阅读 · 0 评论 -
Leetcode题库-两数之和 II - 输入有序数组(java语言版)
题目描述:给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 1...原创 2019-03-06 23:16:01 · 306 阅读 · 0 评论 -
Leetcode题库-罗马数字转整数(java语言版)
题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即...原创 2019-01-18 20:19:08 · 1026 阅读 · 0 评论 -
Leetcode题库-移除元素(java语言版)
题目描述:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 n...原创 2019-01-24 21:27:07 · 265 阅读 · 0 评论 -
Leetcode题库-最长公共前缀(java语言版)
题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明原创 2019-01-19 22:45:37 · 5144 阅读 · 0 评论 -
Leetcode题库-实现strStr()(java语言版)
题目描述:给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba"...原创 2019-01-26 00:51:25 · 348 阅读 · 0 评论 -
Leetcode题库-两数之和(java语言版)
Leetcode题库-两数之和(java语言版)第一种方法(for循环嵌套暴力求解)第二种方法-(map)第三种方法-终极方法(时间复杂度最低)第四种方法-先排序在根据位置进行比较总结第一种方法(for循环嵌套暴力求解)根据题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。...原创 2019-01-15 23:21:13 · 3007 阅读 · 0 评论 -
Leetcode题库-有效的括号(java语言版)
题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"...原创 2019-01-22 00:17:09 · 280 阅读 · 0 评论 -
Leetcode题库-最大子序和(java语言版)
题目描述:给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。 这道题刚开始没有思路,也没读懂题目的意思,最后,明白,就是这个数组中的元素组成的子序列的和最大就行,子序列至少包含一个元素...原创 2019-02-01 00:09:42 · 215 阅读 · 0 评论 -
Leetcode题库-搜索插入位置(java语言版)
题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3...原创 2019-01-27 20:56:51 · 369 阅读 · 0 评论 -
Leetcode题库-删除排序数组中的重复项(java语言版)
题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1,2。你不需要考虑数组中超出新长度后面的元素。示...原创 2019-01-22 20:29:26 · 343 阅读 · 1 评论 -
Leetcode题库-颜色分类(java语言版)
题目描述:给定一个包含红色、白色和蓝色,一共n个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序...原创 2019-02-27 20:35:08 · 535 阅读 · 0 评论 -
Leetcode题库-数组中的第K个最大元素(java语言版)
题目描述:在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。 这...原创 2019-02-27 20:49:21 · 947 阅读 · 0 评论 -
Leetcode题库-移动零(java语言版)
题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数 这道题我首先想到的思路:就是类似于冒泡排序一样,将0看作最大/最小的数,进行判断如果是0,就将相邻元素交换位置,这...原创 2019-02-25 19:05:14 · 461 阅读 · 0 评论 -
数据结构(java)---二叉搜索树
先介绍一下什么是二叉树: 二叉树是一种特殊的顺序树,它规定有左右两个孩子,即左右孩子顺序不能替换,所以二叉树是一种有序树。二叉树的结点数为大于0小于等于2。 例如这样的树: 再说什么是二叉搜索树: 1,若根节点有左子树,则左子树的所有节点都比根节点小; 2,若根节点有右子树,则右子树...原创 2019-02-26 20:26:47 · 111 阅读 · 0 评论 -
Leetcode题库-删除排序数组中的重复项 II(java语言版)
题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2,3 。你不需要考虑数组...原创 2019-03-03 23:27:51 · 229 阅读 · 0 评论 -
Leetcode题库 - 反转字符串中的元音字母(java语言版)
题目描述:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: "hello"输出: "holle"示例 2:输入: "leetcode"输出: "leotcede"说明:元音字母不包含字母"y"。 本题思路和前两篇博客:回文串,两数之和2一样,主要使用对撞指针的方法,定义一个左指针,定义一个右指针,然后进行判断,...原创 2019-03-09 16:43:51 · 352 阅读 · 0 评论 -
Leetcode题库-求众数(java语言版)
题目描述给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2 这道题很简单,有多种思路,在这里我主要介绍四种,很有意思的一种思路叫做摩尔投票。这个是从网上借鉴的...原创 2019-07-26 23:55:16 · 522 阅读 · 0 评论