- 博客(157)
- 资源 (1)
- 收藏
- 关注
原创 买卖股票
买卖股票1. 剑指offer63股票的最大利润2. 121 买卖股票的最佳时机3. 122 买卖股票的最佳时机 II4. 123 买卖股票的最佳时机 III5. 188 买卖股票的最佳时机 IV6. 309 最佳买卖股票时机含冷冻期7. 714 买卖股票的最佳时机含手续费8. 901 股票价格跨度
2021-04-09 17:35:20
310
原创 构建二叉树
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。leetcode链接1. 递归创建思路:记录当前前序遍历和中序遍历值所在的位置;对于根节点左子树来说,在中序遍历根节点的左侧,即在中序遍历数组中,其左子树继续在创建时,查看是否到了根节点值的位置;对于根节点右子树来说,在中序遍历根节点的右侧,即在中序遍历数组中,其右子树继续在创建时,只需要查看是否前序遍历数组是否越界。class Solution {public:
2021-03-25 18:06:54
158
原创 统计词频
写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。为了简单起见,你可以假设:words.txt只包括小写字母和 ' ' 。每个单词只由小写字母组成。单词间由一个或多个空格字符分隔。链接:https://leetcode-cn.com/problems/word-frequencycat words.txt | tr -s ' ' '\n' | sort | uniq -c | sort -r | awk '{print $2,$1}'指令解释
2021-03-13 10:28:20
421
原创 圆圈中最后剩下的数字
0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。链接:https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof经典的约瑟夫环问题。最后一个人剩下的
2021-03-12 20:21:48
154
原创 股票的最大利润
假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?思路:一个遍历,挨次寻找最小值,若当前股票价格大于最小值,则求利润,并对当前利润进行保存,后续再进行 如上操作。class Solution {public: int maxProfit(vector<int>& prices) { int sz = prices.size(); if(sz <= 1) return 0
2021-03-12 20:06:07
226
原创 不用加减乘除做加法
写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。因为不能使用加减乘除,则我们可以考虑使用位运算来达到对加减乘除做加法的操作。一个数保留非进位,一个数保留进位,当进位为0时,则可以进行返回了。同样也需要注意到,负数存在的情况。class Solution {public: int add(int a, int b) { while(b != 0) { // 负数时,不支持右移,则强转为uns
2021-03-10 22:37:34
115
原创 构建乘积数组
给定一个数组A[0,1,…,n−1]A[0,1,…,n-1]A[0,1,…,n−1],请构建一个数组 B[0,1,…,n−1]B[0,1,…,n-1]B[0,1,…,n−1],其中 B[i]B[i]B[i]的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i−1]×A[i+1]×…×A[n−1]B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]B[i]=A[0]×A[1]×…×A[i−1]×A[i+1]×…×A[n−1]。不能使用除法。
2021-03-09 19:40:21
121
原创 设计模式:策略模式
1. 什么是策略模式?2. 谁来选择具体的策略算法呢?2.1 上下文做参数传递给策略对象3. 策略模式的优缺点:4. 何时选用策略模式?
2021-03-08 17:43:21
278
1
原创 C++类型转换
1. C语言类型转换1.1 隐式类型转换1.2 强制类型转换1.3 C语言类型转换存在的缺点2. C++类型转换2.1 类类型转换2.2 类转换构造函数2.3 C++新增类型转换运算符2.3.1 static_cast2.3.2 const_cast2.3.3 reinterpret_cast2.3.4 dynamic_cast
2021-03-03 18:38:55
705
原创 设计模式:工厂方法模式
1. 什么是工厂方法模式?2. 参数化工厂方法3. 工厂方法模式和简单工厂模式4. 工厂方法模式优缺点5. 何时选用工厂方法模式?
2021-03-02 11:47:27
350
2
原创 UDP协议详解
UDP( User Datagram Protocol)协议,用户数据报协议。简单的UDP编程代码1. UDP协议的三大特点无连接:在给对方发送消息的时候,不需要建立连接,只要知道对方的IP地址及侦听的端口就可以直接发送数据了。不可靠:对于UDP的发送方而言,不关心消息接收方是否工作正常,只关心发送函数调用是否成功(发送方调用sendto函数成功);面向数据报:应用层给传输层的UDP协议递交数据的时候,应用层的数会被临时写到UDP协议的发送缓冲区中,此时,在缓冲区当中打上UDP协议的报头之后,
2021-02-01 16:42:07
1141
1
原创 复杂链表的复制
题目描述:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。链接:https://leetcode-cn.com/problems/fu-za-lian-biao-de-fu-zhi-lcof1.哈希表建立映射关系,当前节点和复制的节点。复制的节点为新开辟出来的节点开辟出来的节点next节点,为源节点的下一个节点的映射开辟出来的节点random节点,为源
2021-01-17 20:22:30
101
原创 二叉树中和为某一值的路径
题目描述:输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。链接:https://leetcode-cn.com/problems/er-cha-shu-zhong-he-wei-mou-yi-zhi-de-lu-jing-lcof/解题思路:某一值的路径,则二叉树最后节点必须为叶子节点采用dfs + 回溯代码:class Solution {public: vector<vector<
2021-01-17 16:16:58
111
1
原创 二叉搜索树的后序遍历序列
题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-hou-xu-bian-li-xu-lie-lcof/解题思路:二叉搜索树的后序遍历序列。则最后的为根节点后序遍历时,左子树的值都比根节点值小当某节点比根节点值大时,则该节点为右子树,即右子树的值均大于根节点的值基于第三
2021-01-17 16:02:24
125
DataStruct.zip
2020-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人