算法
文章平均质量分 78
Ckyeka
Coding is not merely for work, but for poetry and distant horizons.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode刷题笔记—栈与队列
栈与队列栈与队列是非常重要的基础数据结构,本文汇总了《代码随想录》和《Leetcode101》中关于栈与队列的练习题及其题解,旨在帮助读者更深入地理解相关概念和解题思路。如有疏漏或错误,恳请批评指正。文章目录栈与队列1. 栈[232. 用栈实现队列](https://leetcode.cn/problems/implement-queue-using-stacks)[225. 用队列实现栈](https://leetcode.cn/problems/implement-stack-using-queue原创 2025-01-12 18:38:17 · 898 阅读 · 0 评论 -
leetcode刷题笔记——股票交易问题总结
由于卖出股票后有一天的冷却时间,所以在卖出股票后先转移到sell状态,后一天才可以重新回到s0状态。由于不限制交易次数并且买入和卖出可以是同一天,因此只要第i天的股价高于前一天,我们就选择交易。在进入buy状态后可以直接卖掉股票转移到sell状态也可以选择转移到imm状态重复等待。s0表示待买入阶段,买入第i天的股票后转移到buy状态,也可以选择不购买重复等待。股票购买问题本质上就是一个有限状态机,对于这类问题,画出状态转换图即可解之。如果存在其他状态指向该状态,那么就用其他状态的前一天状态进行更新。原创 2024-03-28 18:49:17 · 1224 阅读 · 0 评论 -
枚举排列和子集生成的方法
1. 增量构造法增量构造法在每一层递归中都会输出一个子集,集合的子集总共有2^n个(包括空集),所以解答树的结点为 2^n个值得一提的在for循环中的起始需要保证比前一个子集的最后一个元素大,从而不会出现{1, 2}和{2, 1}这样重复的子集出现,每个自己的元素都是递增的。public void printSubset(int n, int A[], int k) { // 因为是子集 所以不需要k=n的时候再输出 for(int i = 0 ; i < k; i ++) { S原创 2022-03-03 20:17:47 · 317 阅读 · 0 评论 -
排列枚举问题
以全排列问题为例,如何枚举出所有排列组合?容易想到的思路就是dfs深度优先搜索,比如我要得到长度为m的全排列,那么对于每一层递归,选择未被选择过的数然后再往下继续搜索,直到选择了m个数,此时一种排列组合形成了,想要获得所有的排列组合,就需要进行回溯,将之前标记为已选择的数重新标记为未选择,这样就能得到其他的组合。for (int i = 1; i <= n; i++){ if(!visited[i - 1]){ a[m] = i; //m为此时递归的层数 visited[i原创 2021-03-10 20:43:30 · 315 阅读 · 0 评论
分享