
leetcode
随波逐流he
提供计算机相关付费咨询
展开
-
PriorityQueue和queue的区别
PriorityQueue是小顶堆,PriorityQueue出入的顺序跟优先级有关,默认是从小到大的优先级顺序。原创 2020-04-06 13:20:58 · 813 阅读 · 0 评论 -
HashSet和HashMap的区别
原创 2020-04-02 21:10:09 · 227 阅读 · 0 评论 -
左叶子之和
public int sumOfLeftLeaves(TreeNode root) { if (root == null)//root为空直接返回0 return 0; //left存root的左子树的左叶子之和,right存右子树的左叶子之和 //若root.left为左叶子,cur存root.left的值 int left = 0, right ...转载 2019-06-25 21:46:10 · 120 阅读 · 0 评论 -
二叉树所有路径
思路:用一个path变量保存一条路径,判断标准是否是叶子节点。注意一点vector类似于int,如果想要按地址传递参数的话,需要加&变成引用,将int转换为string用to_string()函数。class Solution {public: void allpath(TreeNode *root,string path,vector<string> &...原创 2019-06-25 19:26:28 · 226 阅读 · 0 评论 -
路径总和
思路:递归。判断每个节点是不是叶子节点,是的话左右节点为空,不是的话用sum减去该节点的值,并继续调用左右节点,sum/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNo...原创 2019-06-25 17:32:51 · 162 阅读 · 0 评论 -
平衡二叉树判断
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/clas...原创 2019-06-05 20:41:09 · 126 阅读 · 0 评论 -
将有序数组转换为二叉搜索树
class Solution {public: TreeNode* sortedArrayToBST(vector<int>& nums) { if(nums.size()==0){ return NULL; } TreeNode *root=new TreeNode(nums[nums.size...原创 2019-06-05 15:33:04 · 101 阅读 · 0 评论 -
二叉搜索树
有两种情况:1.u,v不在树中;返回空 2.u,v在树中:<1>u,v都在左子树上;递归调用根的左孩子 <2>u,v都在右子树上;递归调用根的右孩子 <3>u,...原创 2019-06-05 15:07:01 · 128 阅读 · 0 评论 -
找到所有数组中消失的数字
class Solution {public: vector<int> findDisappearedNumbers(vector<int>& nums) { vector<int> ans; for(int i=0;i<nums.size();i++){ nums[abs(nums[i]...原创 2019-04-25 15:54:33 · 377 阅读 · 0 评论 -
两数之和 II - 输入有序数组
用find函数来定位数据出现位置,它返回的一个迭代器,当数据出现时,它返回数据所在位置的迭代器,如果map中没有要查找的数据,它返回的迭代器等于end函数返回的迭代器,程序说明#include <map>#include <string>#include <iostream>Using namespace std;Int main(){...原创 2019-04-23 10:40:02 · 102 阅读 · 0 评论 -
最短无序连续子数组
使用一个辅助数组,排序后从头尾分别比较,遇到不匹配的位置即为起始点,注意完全升序的情况class Solution {public: int findUnsortedSubarray(vector<int>& nums) { if(nums.size()==1){ return 0; } vector...原创 2019-04-26 17:12:51 · 106 阅读 · 0 评论 -
加一
思路:首先对末尾加一,循环遍历,如果某位为10,则置该位为零,同时前一位加一,如果不为零则退出循环class Solution {public: vector<int> plusOne(vector<int>& digits) { int num=0; int flag=1; int len=digits...原创 2019-04-14 23:17:27 · 211 阅读 · 0 评论 -
最大子序和
最大连续子数组和肯定是以某个数组里的元素结尾的,所以只要得到以数组每个元素结尾的最大和在比较即可。如: [-2,1,-3,4,-1,2,1,-5,4]分别求-2,1,-3,4,-1,2,1,-5,4结尾的最大子数组和,在找出九个中最大的即为答案,怎么找每个元素结尾的子数组和呢,采用下面的式子:定义状态: * dp[i] : 表示以 nums[i] 结尾的连续子数组的最大和 * <...原创 2019-04-14 22:35:29 · 92 阅读 · 0 评论 -
整数翻转
Int32 //等于int, 占4个字节. 取值范围:-2147483648 2147483647判断整数溢出的方法:temp=res*10+x%10;res>214748364,temp溢出;res=214748364,x%10>7溢出。同理res为负数时class Solution {public: int reverse(int x) { ...原创 2019-04-12 16:18:22 · 119 阅读 · 0 评论 -
两数之和
全部遍历会超时,使用hashmap映射将时间复杂度降到O(n),class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { map<int,int>m; vector<int>res; for...原创 2019-04-12 15:11:41 · 130 阅读 · 0 评论 -
leetcode13
class Solution {public: int romanToInt(string s) { int num=0; for(int i=0;i { if(tonumber(s[i]) { num=num-tonumber(s[原创 2017-11-02 21:27:51 · 149 阅读 · 0 评论