![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
周末的丢
这个作者很懒,什么都没留下…
展开
-
统计每个月兔子个数
五原创 2020-03-27 19:43:42 · 183 阅读 · 0 评论 -
洗牌
洗牌原创 2020-03-23 10:39:42 · 153 阅读 · 0 评论 -
超长正整数相加
https://www.nowcoder.com/questionTerminal/5821836e0ec140c1aa29510fd05f45fc原创 2020-03-18 19:41:34 · 80 阅读 · 0 评论 -
饥饿的小易
https://www.nowcoder.com/questionTerminal/5ee8df898312465a95553d82ad8898c3import java.util.*;public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(Sy...原创 2020-03-17 20:38:21 · 168 阅读 · 0 评论 -
生成格雷码
https://www.nowcoder.com/questionTerminal/50959b5325c94079a391538c04267e15import java.util.*;public class GrayCode { public String[] getGray(int n) { // write code here String[]...原创 2020-03-15 12:48:12 · 151 阅读 · 0 评论 -
构建连乘数组
https://www.nowcoder.com/questionTerminal/94a4d381a68b47b7a8bed86f2975db46给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。(注意:规定B[0]= A[1] * A[2] * … * A[n...原创 2020-03-13 12:14:05 · 171 阅读 · 0 评论 -
最小公倍数
https://www.nowcoder.com/questionTerminal/22948c2cad484e0291350abad86136c3输入两个正整数A和B。输出A和B的最小公倍数。结论:比如a和b两个数 ,a*b =ab的最大公约数 * 最小公倍数所以求最小公倍数,求出最大公约数即可import java.util.Scanner;public class Main {...原创 2020-03-11 21:58:36 · 156 阅读 · 0 评论 -
不要二
链接:https://www.nowcoder.com/questionTerminal/1183548cd48446b38da501e58d5944eb?toCommentId=5410037来源:牛客网二货小易有一个W*H的网格盒子,网格的行编号为0H-1,网格的列编号为0W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y...原创 2020-03-09 12:38:34 · 127 阅读 · 0 评论 -
初识背包算法(神奇的口袋)
今天第一次认识到背包算法 这个还是比较好理解的比如有一个数组[1,2,3,4] , 数组内可以随意组合,但是每个数字只能出现一次,问有几种结果结果就是 1 2 3 4 1+2 1+3 1+4 1+2+3 1+2+4 2+3 2+4 2+3+4 3+4 1+2+3+4而我们的背包算法就是做这个的比如我们有一个书包 他的重量是0我们将数字[1,2,3,4]看成书包的1 2 3 4层我们没到...原创 2020-03-06 12:58:42 · 317 阅读 · 0 评论 -
数组中的逆序对
https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/submissions/在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例:输入: [7,5,6,4]输出: 5如果遍历两次的话也就是O(N^2)的算法,那就超时了所以我们采用...原创 2020-03-03 15:11:43 · 130 阅读 · 0 评论 -
公交路线
https://leetcode-cn.com/problems/bus-routes/我们有一系列公交路线。每一条路线 routes[i] 上都有一辆公交车在上面循环行驶。例如,有一条路线 routes[0] = [1, 5, 7],表示第一辆 (下标为0) 公交车会一直按照 1->5->7->1->5->7->1->… 的车站路线行驶。假设我们从 ...转载 2020-02-07 13:59:30 · 404 阅读 · 0 评论 -
二叉树的右视图
https://leetcode-cn.com/problems/binary-tree-right-side-view/submissions/给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。/** * Definition for a binary tree node. * public class TreeNode { * int ...原创 2020-02-06 18:57:16 · 152 阅读 · 0 评论 -
压缩字符串
给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。示例输入:[“a”,“a”,“b”,“b”,“c”,“c”,“c”]输出:返回6,输入数组的前6个字符应该是:[“a”,“2”,“b”,“2”,“c”,“3”]说明:"aa"被"a2"替代。...原创 2020-02-06 12:36:56 · 155 阅读 · 0 评论 -
矩阵中的最长递增路径(困难)/dfs/动态规划
https://leetcode-cn.com/problems/longest-increasing-path-in-a-matrix/solution/ju-zhen-zhong-de-zui-chang-di-zeng-lu-jing-by-leet/给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即...转载 2020-02-06 01:26:33 · 861 阅读 · 0 评论 -
子集/回溯/变态递归
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]方法一:递归法太变态了class Solution { public static void addHelper(...原创 2020-02-05 21:32:47 · 132 阅读 · 0 评论 -
逆波兰表达式求值
根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例输入: [“2”, “1”, “+”, “3”, “*”]输出: 9解释: ((2 + 1) * 3) = 9输入: [“4”...原创 2020-02-04 01:42:23 · 233 阅读 · 0 评论 -
最短无序连续子数组
给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。方法一:排序算法这个方法就是将原有数组拷贝为一个新的数组然后去比较这两...原创 2020-02-03 20:45:35 · 888 阅读 · 0 评论 -
在排序数组中查找元素的第一个和最后一个位置/二分查找进阶
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值,返回 [-1, -1]。方法一:从前往后找target的值从后往前找target的值然后用left和right分别记录下来class Solution { public static int[] searchRange(int[] nums,...原创 2020-02-02 22:08:40 · 223 阅读 · 0 评论 -
验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。例如输入: “A man, a plan, a canal: Panama”输出: true方法一:字符串添加这个方法比较好像,创建两个stringBuffer,一个从前往后加,如果是字母或者数字就append,一个从后往前append,如果是字母或者...原创 2020-02-02 16:21:02 · 191 阅读 · 0 评论 -
实现字符串转整数
https://leetcode-cn.com/problems/string-to-integer-atoi/请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将...原创 2020-02-01 01:03:08 · 192 阅读 · 0 评论 -
二进制求和
给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例输入: a = “1010”, b = “1011”输出: “10101”我的思路是将两个字符串转成int类型数组然后将这两个int类型数组相加,得到一个新的数组类似这样[2,0,2,1]然后从前往后遍历具体实现步骤如下class Solution { public...原创 2020-01-30 14:16:22 · 399 阅读 · 0 评论 -
两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]方法一:暴力搜索...原创 2020-01-29 21:14:42 · 150 阅读 · 1 评论 -
第三大的数
https://leetcode-cn.com/problems/third-maximum-number/给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。输入: [3, 2, 1]输出: 1解释: 第三大的数是 1.输入: [1, 2]输出: 2解释: 第三大的数不存在, 所以返回最大的数 2class Sol...原创 2020-01-28 00:12:30 · 211 阅读 · 1 评论 -
加一
https://leetcode-cn.com/problems/plus-one/给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,...原创 2020-01-27 18:11:17 · 132 阅读 · 0 评论 -
寻找数组的中心索引
https://leetcode-cn.com/problems/find-pivot-index/给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例输入:...原创 2020-01-27 16:43:08 · 249 阅读 · 0 评论 -
仅仅反转字母
给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。输入:“ab-cd”输出:“dc-ba”输入:“a-bC-dEf-ghIj”输出:“j-Ih-gfE-dCba”思路:这题的思路采用栈的数据结构来解决,先把所有字母入栈,然后遍历原字符串,如果是字母就去栈顶元素append,如果不是字母,就append当前位置的非字母字符...原创 2020-01-24 23:56:01 · 169 阅读 · 0 评论 -
长建输入
https://leetcode-cn.com/problems/long-pressed-name/你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。输入:name = “alex”, typed = “aaleex”输出:true解释:‘alex’ 中的 ‘a’ 和 ‘e’ 被长按。输入:name = “s...原创 2020-01-24 17:10:54 · 159 阅读 · 0 评论 -
是否存在重复元素
给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例输入: [1,2,3,1]输出: true输入: [1,2,3,4]输出: false方法一:两重循环遍历遍历两次这个数组,for循环里再套一层循环,第二次遍历数组去判断是否存在数字和第一次遍历的数组相等,这个比较好理解 f...原创 2020-01-23 17:35:38 · 193 阅读 · 0 评论 -
合并两个有序数组
https://leetcode-cn.com/problems/merge-sorted-array/给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。示例:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出: [1,2,2,3,5,6]方...原创 2020-01-22 21:47:07 · 1148 阅读 · 0 评论 -
最后一个单词的长度
给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。class Solution { public int lengthOfLastWord(String s) { if(s.trim().equals("")){ ...原创 2020-01-22 19:36:55 · 95 阅读 · 0 评论 -
回文数
https://leetcode-cn.com/problems/palindrome-number/submissions/回文数:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例输入: 121输出: true输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。这道题我的思路是用递归解决,输...原创 2020-01-22 18:19:09 · 183 阅读 · 0 评论 -
赎金信
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。示例canConstruct(“a”, “b”) -> falsecanConstruct(“aa”, “ab”) -> falsecanConstruct(“aa...原创 2020-01-21 17:30:54 · 225 阅读 · 0 评论 -
搜索插入位置
https://leetcode-cn.com/problems/search-insert-position/submissions/在线做,因为简单class Solution { public int searchInsert(int[] nums, int target) { //当目标值比数组中的元素都要大的时候 if (target >...原创 2020-01-19 23:57:53 · 72 阅读 · 0 评论 -
移除元素/ 删除排序数组中的重复项
https://leetcode-cn.com/problems/remove-element/submissions/题目:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例给定 nums = [3,2,2,3], val = 3,...原创 2020-01-19 18:01:47 · 142 阅读 · 0 评论 -
尼科彻斯定理
找规律,怎么可能难道我这个数学学霸(哈哈仅限于初中)高中之后数学就不行了,说多了都是泪import java.util.*;public class Main{ public static String GetSequeOddNum(int m) { int cuBicSum = m*m*m; String[] num = new ...原创 2019-12-06 21:09:47 · 174 阅读 · 0 评论 -
组个最小数
给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能 小(注意0不能做首位)。例如: 给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558输入2 2 0 0 0 3 0 0 1 0输出10015558方法一:借助一个优先级队列来解决import java.util.Arrays;import java.util...原创 2019-12-06 20:13:26 · 167 阅读 · 0 评论 -
牛牛下厨房,字符串切分问题
题目网址:输入描述每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。输出描述输出一行一个数字表示完成所有料理需要多少种不同的材料。示例:输入:BUTTER FLOURHONEY FLOUR EGG输出:4这道题有一个难点...原创 2019-12-05 11:27:28 · 145 阅读 · 0 评论 -
合法括号序列判断
题目网址:https://www.nowcoder.com/questionTerminal/d8acfa0619814b2d98f12c071aef20d4对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。“(()())”,6返回:true测试样例:“()a()()”,7返回:false...原创 2019-12-02 18:59:48 · 221 阅读 · 0 评论 -
字符串中找出连续最长的数字串
题目网址:https://www.nowcoder.com/questionTerminal/bd891093881d4ddf9e56e7cc8416562dwhile(cur < arr.length){只是往后移,在这里面操作就行了import java.util.Scanner;public class Main{ public static void main(St...原创 2019-12-02 17:58:39 · 187 阅读 · 0 评论 -
旧键盘(坏键盘打字)
题目网址:https://www.nowcoder.com/questionTerminal/f88dafac00c8431fa363cd85a37c2d5e旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有...原创 2019-11-21 20:47:45 · 265 阅读 · 1 评论