
leetcode每日一题
坚持就会有收获
夕阳下的奔跑517
这个作者很懒,什么都没留下…
展开
-
404. 左叶子之和
计算给定二叉树的所有左叶子之和。我的解法:思路:相当于树的广度优先遍历(BFS),使用一个队列。class Solution {public: int sumOfLeftLeaves(TreeNode* root) { queue<TreeNode*> q; q.push(root); int res=0; while(!q.empty()){ TreeNode* t=q.front();.原创 2020-09-19 11:35:18 · 115 阅读 · 0 评论 -
101. 对称二叉树
给定一个二叉树,检查它是否是镜像对称的。我的解答:/** * 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: bo.原创 2020-09-18 10:25:27 · 98 阅读 · 0 评论 -
1. 两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。我的解答:class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { int low=0,high=nums.size()-1,sum=0; .原创 2020-09-17 09:35:08 · 228 阅读 · 0 评论 -
算法题——链表
单链表结构体// Definition for singly-linked list.struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};1.反转链表输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路1:迭代法。数组三个指针,pre、cur、next,从前到原创 2020-07-20 12:52:35 · 162 阅读 · 0 评论 -
leetcode2——链表中倒数第k个节点
给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.思路1:先遍历链表,计算表长n。再遍历n-k步,找到所求。思路2:使用双向循环链表,沿pre走k步,找到所求。思路3:使用单链表,设置指针former、latter,初始指向头结点。former先走k步(former距离表尾还有n-k步),再former、latter共同走n-k步(即former指向null)。/** * Definition for singly-linke.原创 2020-06-17 23:17:28 · 151 阅读 · 0 评论 -
leetcode1——斐波那契数
1.Q.爬楼梯(斐波那契数)一共有n个台阶,你一次可以走一个台阶,或者两个台阶。那么,走到台阶顶时,一共有多少种走法。1阶2阶3阶4阶n阶1种2种(1、2)3种(111、21、12)5种(1111、211、112、22、121)(2+3)f(n-1)+ f(n-2)直接思路:递归法:时间复杂度:O(n) ,空间复杂度:O(n)迭代法:时间复杂度:O(n...原创 2020-01-04 13:03:10 · 162 阅读 · 0 评论