-
买卖股票的最佳时机 III
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 来源:力扣(LeetCode) 链接:https://leetcode cn.com/p -
机器人的运动范围
题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+ -
二叉树中和为某一值的路径
题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) class Solution { public: static bool compar -
和为S的连续正数序列
题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快 -
'?'变化左右括号,使得字符串括号匹配
给定一个包含 ‘(', )', '?',的字符串,'?'可以变为'('或者')',求共有多少中不同变法可以变出匹配的括号来。 include using namespace std; void getcount(string &s,int pos,int left,int right,int&num -
二叉树中最大值节电和最小值节点之间的路径
题目描述 有一棵二叉树,树上每个点标有权值,权值各不相同,请设计一个算法算出权值最大的节点到权值最小的节点的距离。二叉树每条边的距离为1,一个节点经过多少条边到达另一个节点为这两个节点之间的距离。 给定二叉树的根节点root,请返回所求距离。 / struct TreeNode { int val; -
给定入栈顺序,判断出栈顺序是否合法
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长 -
数组实现二路归并排序
使用数组实现二路归并排序 include include include include include include using namespace std; void merge(vector&arr,int left1,int right1,int left2,int right2){ in -
爬楼梯2
题目描述 在你面前有一个n阶的楼梯(n =100且n include include using namespace std; string add(string &a,string &b){ int tmp=0; int i=a.size() 1,j=b.size() 1; string res= -
链表实现归并排序
通过链表实现归并排序 include using namespace std; struct ListNode{ int val; ListNode next; ListNode(int x):val(x),next(NULL){ } }; ListNode merge(ListNode list1