
leetcode
GOGP_nikto
这个作者很懒,什么都没留下…
展开
-
Leetcode144:二叉树前序遍历,morris遍历法
今天做了二叉树的前序遍历,题目要求是用迭代来做不用递归,因为迭代的效率比递归要高而且这也是很多公司面试题的一个要求。第一遍解题用的是栈来模仿递归代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nul原创 2020-10-27 16:25:23 · 348 阅读 · 0 评论 -
LeetCode:判断回文链表(空间O(1))
请判断一个链表是否为回文链表。进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?示例 1:输入:1->2输出:false示例 2:输入:1->2->2->1输出:true思路: 这题要做到空间O(1),时间O(n)的话只能先将链表从中间断开,再将后半部分的链表翻转与前面一个链表作比较.方法:找到中间节点可以用快慢指针,翻转的话用三个指针去改变指向就行.注意:为了不改变原来链表的结构,在判断完之后要把链表原创 2020-09-16 11:34:25 · 291 阅读 · 0 评论 -
leetcode快乐刷题:汉诺塔问题
class Solution {public: void hanot(int n,vector<int>&A,vector<int>&B,vector<int>&C) { if(1==n) { C.push_back(A.back()); A.pop_back(); return; } hanot(n-1,A,C,B); C.push_back(A.back(原创 2020-08-19 08:51:06 · 188 阅读 · 0 评论 -
LeetCode快乐刷题:计数二进制子串
题目:给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。另外,“00110011”不是有效的子串,因为所有的0(和1)没有组合在一起。示例 2 :输入: "1010原创 2020-08-10 21:55:13 · 182 阅读 · 0 评论 -
Leetcode快乐刷题:字符串相加
题目:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-strings著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处原创 2020-08-03 16:52:36 · 141 阅读 · 0 评论 -
Leetcode快乐刷题:快乐的数
题目编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。示例:输入:19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1来源:力扣(LeetCode)原创 2020-08-03 11:28:45 · 141 阅读 · 0 评论 -
leetcode快乐刷题:两数之和
题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作权原创 2020-08-01 16:52:08 · 105 阅读 · 1 评论 -
leetcode:旅行的终点
题目:给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。题目数据保证线路图会形成一条不存在循环的线路,因此只会有一个旅行终点站。示例 1:输入:paths = [[“London”,“New York”],[“New York”,“Lima”],[“Lima”,“Sao Paulo”]]输出:“S原创 2020-08-01 11:06:15 · 328 阅读 · 0 评论 -
leetcode:找出数据中的幸运数
方法一:数组法,数组作为下标计算出现的频率,之后遍历一次根据条件就能找到最大的幸运数class Solution {public: int findLucky(vector<int>& arr) { int max=-1; int num[1000]={-1}; for(int i=0;i<arr.size();i++) num[arr[i]]++; for(int j=0;j&l原创 2020-08-01 10:42:33 · 377 阅读 · 0 评论