![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
左神算法进阶
看这个题真好看
机器学习+深度学习+leetcode+随时准备转行
展开
-
连续子数组的问题,本来想在原来那个写,但是怕太多了自己都不想看了,重新开一个
Leetcode525:连续数组题目:方法1:把0变-1,等价于求连续子数组累加和为0的最大连续子数组的长度,但是这种问题都会有一个边界,只要求最大连续子数组的长度都会有边界问题,这个是0,-1 但是如果我改成求累加和为7的最大连续子数组的长度,那么边界就是7,-1,也就是首先把(7,-1)放到map里面class Solution { public int findMaxLe...原创 2019-10-27 13:13:52 · 111 阅读 · 0 评论 -
(扩充的有点多,不过基本点是子数组求和+数组预处理+伪压缩矩阵(悄悄。。))Leetcode 53最大子序列求和(有扩充,15阿里,leetcode1074)
方法1:class Solution { public int maxSubArray(int[] nums) { int sum=0; int now=nums[0]; for(int i=0;i<nums.length;i++){ if(sum<0){ sum=nums[i...原创 2019-10-14 20:10:20 · 82 阅读 · 0 评论 -
某易 压缩字符串(这个题好到不得了,对于计算表达式都可以这么做)
就是,{}这里面用一个地柜去求解出结果,自定义了一个数据类型package orc.shi.s;public class isB { public static class data { int index; String str; public data(int index,String str){ this.index=index; this.str=str;...原创 2019-10-26 09:21:59 · 162 阅读 · 0 评论 -
某 易最大杀伤力
题目:某游戏是一个卡牌类游戏,玩家通过战斗或抽牌可以拿到一些 技能牌,每张技能牌都有对应的伤害值(伤 害值>=0),当你有 了组合技属性之后,你可以在自己手头上选择任意张技能牌, 以组合技的方式来攻击 boss,组合技的总伤害将等于所组合的 各张技能牌的伤害值的乘积(只有一张牌时,组合技伤害值等于 这张牌 本身的伤害值),但是能发动组合技必须有个前提:所有 被选择的技能牌的伤害系数...原创 2019-10-25 20:10:12 · 112 阅读 · 0 评论 -
Leetcode20 有效的表达式
开始以为case不全,因为我设置了一个s==null s.length()1 但是我没注意到的是,snull和s是空串完全不一样,s.length=0才表示是空串,题目很简单,一个栈就解决了class Solution { public boolean isValid(String s) { //栈 Stack<Character> s...原创 2019-10-23 18:44:00 · 149 阅读 · 0 评论 -
Leetcode1139 最大以1为边界的正方形(预处理数组技巧)
方法1:左神的暴力法和预处里数组检查法class Solution { //数组预处理法,大幅度加快速度 public int largest1BorderedSquare(int[][] grid) { if(grid.length==0||grid[0].length==0){ return 0; } i...原创 2019-10-23 10:30:34 · 270 阅读 · 0 评论 -
Leetcode41缺失的第一个正数,其实自己做真坐不上,而且老师讲的方法,为什么对,就是交换那个地方,也不知道,反正这个题不适合我
class Solution { public int firstMissingPositive(int[] a) { int l = 0;//表示目前已经冲到的数 int r = a.length;//表示可以冲的上限,也就是在网上就冲不上去了 while(l<r){ if(a[l]==l+1){ ...原创 2019-10-22 19:40:56 · 107 阅读 · 0 评论 -
Leetcode70爬楼梯,全宇宙最全解法
方法1 暴力地柜,超时了。。从头遍历,每次遍历两种可能 大该是o2的nclass Solution { int count=0; public int climbStairs(int n) { process(n,0); return count; } public void process(int n,int cur){ ...原创 2019-10-21 10:13:46 · 273 阅读 · 0 评论 -
Leetcode55跳跃游戏和跳跃游戏二
Leetcode55 跳跃游戏1class Solution { public boolean canJump(int[] nums) { int max=0;//最大的距离 for(int i=0;i<nums.length;i++){ if(max<i) return false; max=M...原创 2019-10-21 09:13:17 · 160 阅读 · 0 评论 -
二叉搜索树转化为排序的双向链表(bst)和Leetcode108 将有序数组转平衡二叉树
方法1:地柜我不知道为啥,lintcode就是报空指针,同一个例子,我跑就不报,他跑就报,实在是有病。process作用就是返回一个排序后的链表,那么left得到的就是左边排序的链表,right就是得到右边的,如果只有一个节点那么就是这个节点了对吧,和归并排序一个思想(merge,,虽然我有点忘了归并拍虚了)。Tpublic class Solution { /** * @...原创 2019-10-20 12:42:32 · 217 阅读 · 0 评论 -
Leetcode76覆盖最小子串(都说是魔板操作)
方法1:在这里插入代码片原创 2019-10-20 11:57:23 · 69 阅读 · 0 评论 -
Leetcode438找字符串的字母异构词
方法1:用一个26个长度的int数组表示p串字符出现的次数(map也行,大多数是用map的),从时间考虑的话用int数组,然后窗口的i,j指针指向第一个元素,j向右走,用一个计数器标记如果map中元素用了class Solution { List<Integer> res=new ArrayList(); public List<Integer> find...原创 2019-10-19 12:33:41 · 304 阅读 · 0 评论 -
Leetcode795(不是滑动窗口但是可以用吧,虽然我没写出了)
就是统计以每个节点结尾的满足需求的。居然是结尾,不是起始,而且从-1开始,这都是点,记住class Solution { public int numSubarrayBoundedMax(int[] A, int L, int R) { //思想就是如果当前节点在l到r之间,那么所有以他结尾的都是可以的,然后如果小于l的那种,要看他前面最近连续的(被last标记了),两者...原创 2019-10-19 08:52:33 · 104 阅读 · 0 评论 -
左神進階班
【题目】给定数组 arr 和整数 num,共返回有多少个子数组满足如下情况:max(arr[i…j]) - min(arr[i…j]) <= nummax(arr[i…j])表示子数组 arr[i…j]中的最大值,min(arr[i…j])表示子数组 arr[i…j]中的最 小值。package orc.shi.s;import java.util.LinkedList;pu...原创 2019-10-18 20:29:01 · 76 阅读 · 0 评论 -
Leetcode239滑动窗口的最大值
方法1:代码最多,也是最容易写的滑动窗口,就是用双端列表实现,插入都是在尾端,左端第一个元素一定是最大值,数组也是两个指针,l和r,r每次向右移动一个位置,然后插入队列,就是和队列的右端进行比较,如果大于右端,右端弹出(不要了,不会影响结果,没用的),一直到遇到等于或者大于他的,然后插入,如果l移动一个位置,就要看左端是否失效(就是是否此位置不在窗口中了),或者用l和队列的左端元素比较,看是否相...原创 2019-10-18 11:04:12 · 102 阅读 · 0 评论 -
Leetcode 329矩阵中的最长递增路径
方法1:暴力递归,这个很简单,就是对每一个位置求最大递增路径,然后在看谁最大,单独对每一个位置,可以先递归看是否可左,上,下,右,以及如果可以走的最大递增路径,然后取最大值即是所求,代码很简单,没什么难扣的边界,关键是这个方法是超时的,不行的,因为存在大量重复的递归操作,所以引入方法2,记忆化搜索,我感觉这个题貌似没办法转dp,因为怎么确定初始的值呢。。。更正:可以dp,哎,奈何我如此菜,根本没...原创 2019-10-17 09:00:02 · 170 阅读 · 0 评论 -
Leetcode49 字母异位词分组
方法1:就是用map,看,每一个次字符一样,个数一样,那么排序之后,一定一样,也就是key一样,这样可以放到一个map,然后map的value是个list即可,class Solution { public List<List<String>> groupAnagrams(String[] strs) { List<List<Strin...原创 2019-10-16 20:59:34 · 53 阅读 · 0 评论 -
leetcode263-264丑数
方法1:从头遍历找到第n个,但是会超时的,判断丑数的方法就是,把是2的因子全部去掉,把含5的因子全部去掉,把3的因子全部去掉,看是否是1.class Solution { public int nthUglyNumber(int n) { int count=1; int i=1; while(count<n){ ...原创 2019-10-16 15:11:36 · 120 阅读 · 0 评论 -
Leetcode 寻找最近的回文数
是个高反对低赞的题,但是感觉学完这个,回文也就没问题了思路:确定标准回文(标准回文数就是把例如12345>12321),下面的其他操作都是在这个基础之上展开的。求距离最近的最大回文数求距离最近的最小回文数求最大回文数:对数组进行长度增加1,就是在头部增加一个位置,然后把这个位置令为0,然后对len/2之前第一个元素开始加1,如果不大于9就停止,返回这个数的标准回文即可,如果大...原创 2019-10-16 11:25:19 · 277 阅读 · 0 评论 -
左神进阶班找两数的值等于目标值
1.找出有序数组的两个数,使其值等于目标值双指针法package orc.shi.s;import java.util.HashMap;import java.util.Map;public class test1 { public static void main(String[] args) { int [] arr= {1,2,3,4,5,6,7,8}; int ta...原创 2019-10-15 15:42:01 · 130 阅读 · 0 评论 -
Leetcode 回文数
方法1:就是左右比class Solution { public boolean isPalindrome(int x) { if(x<0){ return false; } int n=Math.abs(x); int help=1; //下面这个代码确实是越界了,他输入一个正好是int最...原创 2019-10-14 21:22:10 · 81 阅读 · 0 评论