随笔分类 -  算法

摘要:背景 最开始刷题的时候,总想着写一个大的辅助数组,用来对每一个元素进行计数,但是考虑到元素空间,肯定是不可行的 但是,对于一些有限个元的元素,比如short型,char型,Byte型,这些类型的元素空间都有限,因此就可以考虑使用一个辅助数组来计数 具体问题1: 在看sort源码时,以为底层就是使用的 阅读全文
posted @ 2022-03-10 19:26 荧惑微光 阅读(36) 评论(0) 推荐(0) 编辑
摘要:###背景 在访问元素的时候,经常会用到一个辅助数组visit[nums.length]来记录元素的访问状态 特别是在图,树的深度遍历,要记录元素是否已经访问过了 在答案树的回溯过程中,经常需要剪枝来删除一些答案,比如要求是不重复的元素 ###问题 那么使用visit数组,会开辟额外的空间 ###解 阅读全文
posted @ 2022-03-06 19:37 荧惑微光 阅读(44) 评论(0) 推荐(0) 编辑
摘要:#题目 链接:https://leetcode-cn.com/problems/generate-parentheses 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())","(() 阅读全文
posted @ 2022-03-03 22:36 荧惑微光 阅读(33) 评论(0) 推荐(0) 编辑
摘要:#题目 链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示 阅读全文
posted @ 2022-03-03 21:46 荧惑微光 阅读(36) 评论(0) 推荐(0) 编辑
摘要:#题目: 链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注 阅读全文
posted @ 2022-03-03 21:30 荧惑微光 阅读(63) 评论(0) 推荐(0) 编辑
摘要:##题目来源 https://leetcode-cn.com/problems/container-with-most-water/ 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它 阅读全文
posted @ 2022-03-02 20:31 荧惑微光 阅读(63) 评论(0) 推荐(0) 编辑
摘要:###记录了啥 动态规划中 在拿到迭代公式之后(也就是知道了如何利用已知部分的信息求未知部分的信息之后) 怎么写循环(怎么循环,好在里面写迭代公式) ###题目 最优除法https://leetcode-cn.com/problems/optimal-division/ 简单说:一个数组全是正整数, 阅读全文
posted @ 2022-02-27 16:47 荧惑微光 阅读(67) 评论(0) 推荐(0) 编辑
摘要:问题就是一个数组,代表每天的股票价格,买了再卖找到最大的利润值 1.只许买卖一次 ###动态规划or最小前缀值 public int maximumDifference(int[] nums) { if (nums.length==0||nums==null)return -1; int res=- 阅读全文
posted @ 2022-02-26 20:16 荧惑微光 阅读(38) 评论(0) 推荐(0) 编辑
摘要:单向遍历常用双层for(i++或者i--) 需要往返的遍历数组的时候 可以采用两种方式: 1.俩for循环,用if+flag判断使用哪个 例如: boolean flag=true;//正向 while(true){ if(flag){ for(int i=0;i<len;i++){ ...... 阅读全文
posted @ 2022-02-24 21:27 荧惑微光 阅读(34) 评论(0) 推荐(0) 编辑
摘要:在同时遍历两条链的时候,由于链表的长度不一,可能造成一条链先遍历完成,另一条长链单独处理的情况 如: 合并有序链表 但是有些情况下,在短链遍历完成之后,可以继续假设短链的数据,使得操作统一 比如:链表加法 2. 两数相加 给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的 阅读全文
posted @ 2022-02-23 15:03 荧惑微光 阅读(61) 评论(0) 推荐(0) 编辑
摘要:1. 问题: 在最短路径问题中,如果源点有多个,我之前的做法可能都是遍历这n个源点 2. 背景题目 leetcode题目:大致意思如下 给定一个 01 矩阵 mat,输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 (斜对角的距离是2) (简单理解就是地图上陆地 阅读全文
posted @ 2022-01-13 20:18 荧惑微光 阅读(158) 评论(0) 推荐(1) 编辑
摘要:之前一般遇到题目考虑使用图遍历的时候,基本上来就深度优先的递归调用,但是忘记了还有BFS方式 二叉树的按层遍历属于啥呢,就属于广度优先,使用了啥呢,使用了队列 所以可以把当前遍历到的节点的所有下一跳都存到队列里,然后队列的头肯定是这个节点都同级节点,弹出来继续遍历就行了 Queue<Node> qu 阅读全文
posted @ 2022-01-13 19:57 荧惑微光 阅读(156) 评论(0) 推荐(0) 编辑
摘要:对于知道长度的单链表,找中间节点的方法比较简单 可以使用双指针,一个指针先出发,遍历一半节点之后,另一个指针再出发,这样后指针遍历到尾时,前指针正好在中间 但是对于未知长度的单链表,一般采用先遍历一遍链表求长度,在从头循环len/2 次遍历到中间节点 改进: 使用快慢指针,一个指针每次前进两步,一个 阅读全文
posted @ 2022-01-08 16:34 荧惑微光 阅读(77) 评论(0) 推荐(0) 编辑
摘要:#题目 一个整数数组nums,找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 例如: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 // [4,-1,2,1] ##方法一:暴力破解 可以考虑暴力破解,为了正向遍历,考虑结尾情况:比如计算以每一 阅读全文
posted @ 2022-01-06 14:19 荧惑微光 阅读(41) 评论(0) 推荐(0) 编辑
摘要:现在不要看,因为是一边学一边整理更改的,现在还有很多描述不准不正确的地方!! 想写点自己关于动态规划的理解(Dynamic Programming) 不如管他叫动态决策。。好理解 ##1适用范围 只返回最优结果,而不返回最优路径的时候 ##2区别于分治 分治是1+1+1+1=4 而动态规划是1+1= 阅读全文
posted @ 2022-01-06 13:29 荧惑微光 阅读(29) 评论(0) 推荐(0) 编辑
摘要:###记录原因: 刷题时发现一道二分法题怎么写都超时 老天,我从开始学编程就没注意过这事啊,mid一直是用 (b+e)/2表示啊 甚至一度怀疑二分法写错了,或者根本不是用二分法做的 然后我看了正确答案 int mid=b+(e-b)/2; 将道理我好歹还比这个少一次加减法运算吧 ###超时的用例 索 阅读全文
posted @ 2022-01-05 11:43 荧惑微光 阅读(217) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示