LeetCode
Heart Breaker@
这个作者很懒,什么都没留下…
展开
-
力扣 309. 最佳买卖股票时机含冷冻期
【题目】给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。【思路与算法】【代码】class Solution {public: int maxProfit(vector<int>& prices) { i转载 2020-08-26 09:54:13 · 189 阅读 · 0 评论 -
LeetCode 802.找到最终的安全状态
【题目】传送门【思路】就是拓扑排序的简化版,一般思路是先找到所有出度为0的节点,再找出能够到达这些节点的节点。【代码】class Solution {public: vector<int> eventualSafeNodes(vector<vector<int>>& graph) { vector<int> res;//存放结果 int m=graph.size(); vec原创 2020-08-24 20:12:40 · 180 阅读 · 0 评论 -
力扣 N叉树的前序遍历
【题目】传送门【代码】/*// Definition for a Node.class Node {public: int val; vector<Node*> children; Node() {} Node(int _val) { val = _val; } Node(int _val, vector<Node*> _children) { val = _val; c原创 2020-08-13 14:27:37 · 151 阅读 · 0 评论 -
力扣 79.单词搜索+212.单词搜索II
回溯法单词搜索单词搜索||单词搜索【题目】给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。【思路】【代码】class Solution {public: int dir[4][4]={{-1,0},{1,0},{0,-1},{0,1}};//位置坐标 bool dfs(int x,int y,int index,vecto原创 2020-08-13 11:41:59 · 389 阅读 · 0 评论 -
力扣 297. 二叉树的序列化与反序列化
【题目】传送门【思路】序列化:二叉树的序列化本质上是对其值进行编码,更重要的是对其结构进行编码。可以遍历树来完成上述任务。我们可以先序遍历这颗二叉树,遇到空子树的时候序列化成 None,否则继续递归序列化。反序列化:首先我们需要根据 , 把原先的序列分割开来得到先序遍历的元素列表,然后从左向右遍历这个序列:如果当前的元素为 None,则当前为空树否则先解析这棵树的左子树,再解析它的右子树https://leetcode-cn.com/problems/serialize-and原创 2020-08-05 09:10:17 · 244 阅读 · 0 评论 -
二叉树的前、中、后序遍历(非递归)
【二叉树的前序遍历】传送门/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<int>转载 2020-08-01 11:22:29 · 80 阅读 · 0 评论 -
Nim游戏
【题目】你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;因为无论你拿走 1 块、2 块 还是 3 块石头,最后一块石头总是会被你的朋友拿走。【官方题解】如果石头的个数是4n,那么先手者必输:后手者只要保证每回合能原创 2020-07-29 20:51:06 · 617 阅读 · 0 评论 -
力扣:存在重复元素+存在重复元素||
存在重复元素【题目】给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true【代码】class Solution {public: bool containsDuplicate(vector<in原创 2020-07-26 11:03:58 · 161 阅读 · 0 评论