![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
文章平均质量分 72
数据结构和算法
乐之者v
一生编程,快乐编程。
展开
-
LeetCode回溯算法的解题思路
回溯法:一种通过探索所有可能的候选解来找出所有的解的算法。如果候选解被确认不是一个解(或者至少不是最后一个解),回溯算法会通过在上一步进行一些变化抛弃该解,即回溯并且再次尝试。输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]输入:nums = [0]输出:[[],[0]]原创 2024-02-07 23:58:54 · 643 阅读 · 0 评论 -
LeetCode 二叉树/n叉树的解题思路
(3)在遍历过程中,使用 Queue的 offer()方法得到队列中的节点,根据节点查出它的左节点和右节点,并用offer()方法放入队列中。(1)获取 Queue的size, 因为Queue中存放的其实就是每一层中所有的节点, size就相当于每一层的数量,也就是宽度。1、使用 Queue的 offer()方法(或者是add()方法)把树的根节点放入 Queue;(2)找出与此点邻接的且尚未遍历的点(也就是子节点),进行标记,然后全部放入stack中;前序遍历:根节点,左节点,右节点。原创 2024-02-07 23:58:08 · 925 阅读 · 0 评论 -
链表常见操作及解题思路
可以将链表的节点,作为HashMap的key,再用HashMap的containsKey()来判断当前节点是否已经存在。(3)可以通过栈实现,将链表数据放入栈里面,再拿出来。思路:处理环形链表时,也可以使用快慢指针,一个走得快,一个走得慢,如果是环形链表,那么这两个指针最终会相遇。将当前节点node的指针next指向下一个节点的下一个节点,就相当于删除下个节点了。8.A指针走完了一个链表,就指向另一个链表,B指针也是。涉及到下标的问题,都可以将链表转化为数组解决,数组的每一个元素都是一个节点。原创 2024-02-07 23:57:21 · 428 阅读 · 0 评论 -
LeetCode解题思路
参考资料: https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/solution/bao-li-mei-ju-dong-tai-gui-hua-chai-fen-si-xiang-b/9.LeetCode有时会报一些莫名其妙的错误,比如 error: cannot find symbol ,有可能是函数中的参数拼错了,比如没有注意大小写,或者是多了_之类的。元素的计算结果,比如元素x2的计算结果由元素x1的计算结果等等决定。原创 2024-02-07 23:56:04 · 779 阅读 · 0 评论 -
LeetCode动态规划的解题思路
对于dp[i][1],按照同样的方式考虑转移状态,那么可能的转移状态为前一天已经持有一支股票,即 dp[i−1][1],或者前一天结束时还没有股票,即 dp[i−1][0],这时候我们要将其买入,并减少 prices[i] 的收益。考虑 dp[i][0] 的转移方程,如果这一天交易完后手里没有股票,那么可能的转移状态为前一天已经没有股票,即 dp[i−1][0],或者前一天结束的时候手里持有一支股票,即 dp[i−1][1],这时候我们要将其卖出,并获得 prices[i]的收益。原创 2024-02-07 23:12:12 · 1295 阅读 · 0 评论 -
链表:反转链表
接着向下一个节点3,迭代,反转,将3->2,也就是变成了3->2->1,依此类推。首先,从第一个节点开始,反转,将1->null,反转链表,常用的方法有迭代,栈反转,递归反转。接着向下一个节点2,迭代,反转,将2->1,比如,现有链表1->2->3->4->5,原创 2024-02-06 22:59:48 · 742 阅读 · 0 评论 -
数据结构的基础知识
一、数据之间的关系 线性关系、一对一、一对多、多对多 二、复杂度 1.时间复杂度:耗费时间的长度 一次for循环的时间复杂度:O(N) 两次for循环嵌套的时间复杂度:O(N2) 计算多个语句混合的时间复杂度,以耗时最久语句的时间复杂度为准。 算法的时间复杂度,用来度量算法的运行时间,记作: T(n) = O(f(n))。它表示随着 输入大小n 的增大,算法执行需要的时间的增长速度可以用 f(n...原创 2017-10-17 21:41:00 · 27 阅读 · 0 评论