算法+LeetCode
文章平均质量分 69
Jamie_Wu
沙坡村未来之光
展开
-
leetcode每日一道(20)深度优先!二叉树路径代表的数字之和
题目描述给定一个仅包含数字0-9的二叉树,每一条从根节点到叶子节点的路径都可以用一个数字表示。例如根节点到叶子节点的一条路径是1->2->3,那么这条路径就用123来代替。找出根节点到叶子节点的所有路径表示的数字之和例如:1↵ / ↵ 2 3根节点到叶子节点的路径1->2用数字12代替根节点到叶子节点的路径1->3用数字13代替所以答案为12+1...原创 2019-11-28 16:37:03 · 507 阅读 · 0 评论 -
leetcode每日一道(19)逆向思维!模拟围棋:请捕获所有的被‘X’包围的区域
题目描述现在有一个仅包含‘X’和‘O’的二维板,请捕获所有的被‘X’包围的区域捕获一个被包围区域的方法是将被包围区域中的所有‘O’变成‘X’例如X X X XX O O XX X O XX O X X执行完你给出的函数以后,这个二维板应该变成:X X X XX X X XX X X XX O X X思路我们一般会想到,判断每个连通的O周围,是否全是X,是的话则把它替...原创 2019-11-28 14:42:46 · 2276 阅读 · 0 评论 -
leetcode每日一道(18)神仙思路!返回字符串所有的回文子串切分结果
题目描述给定一个字符串s,分割s使得s的每一个子串都是回文串返回所有的回文分割结果。(注意:返回结果的顺序需要和输入字符串中的字母顺序一致。)例如:给定字符串s=“aab”,返回 [“aa”,“b”],↵ [“a”,“a”,“b”]深度优先搜索思路子在川上曰:如果要求输出所有可能的解,往往都是要用深度优先搜索。如果是要求找出最优的解,或者解的数量,往往可以使用动态规划。记住...原创 2019-11-27 17:22:06 · 1465 阅读 · 0 评论 -
leetcode每日一道(17)思路惊为天人!切分为回文子串所需的最少切分次数
文章目录题目描述思路问题引申:如何找到一个字符串中究竟有多少个回文子串?代码题目描述给出一个字符串s,分割s使得分割出的每一个子串都是回文串计算将字符串s分割成回文分割结果的最小切割数例如:给定字符串s=“aab”,返回1,因为回文分割结果[“aa”,“b”]是切割一次生成的。思路这道题如果不利用动态规划的话,就相当于再每两个字符之间,都有切分和不切分两种选择,那么时间复杂度是O...原创 2019-11-27 10:15:22 · 592 阅读 · 0 评论 -
leetcode每日一道(16)复制一个无向图,每个节点都包含一个标签和它的邻居列表
题目描述本题要求复制一个无向图,图中每个节点都包含一个标签和它的邻居列表我们无向图用以下的方法序列化:节点的标签是互不相同的,我们使用“#”作为节点之间的分隔符,使用“,”作为节点标签和节点的节点邻居的分隔符。例如:现在有一个序列化的无向图{0,1,2#1,2#2,2}.这个无向图一共有3个节点,因此序列被#分隔成三部分第一个节点的标签是0,节点0和节点1,节点2之间有边第二个节...原创 2019-11-26 16:26:04 · 816 阅读 · 0 评论 -
leetcode每日一道(15)环形路上加油站起点问题,绝妙思路
题目描述环形路上有n个加油站,第i个加油站的汽油量是gas[i].你有一辆车,车的油箱可以无限装汽油。从加油站i走到下一个加油站(i+1)花费的油量是cost[i],你从一个加油站出发,刚开始的时候油箱里面没有汽油。求从哪个加油站出发可以在环形路上走一圈。返回加油站的下标,如果没有答案的话返回-1。注意:答案保证唯一。思路其实比较容易想到,如果我随便选个起点,然后选择它的下一个加...原创 2019-11-25 23:06:27 · 1909 阅读 · 0 评论 -
leetcode每日一道(14)按评分给小朋友分糖果
题目描述有N个小朋友站在一排,每个小朋友都有一个评分你现在要按以下的规则给孩子们分糖果:每个小朋友至少要分得一颗糖果分数高的小朋友要他比旁边得分低的小朋友分得的糖果多你最少要分发多少颗糖果?思路这样一道题有点意思,经过分析可知,为使得糖果数目尽可能少,用一个vector数组来存储糖果数目,每个小旁友的初始值置为1,如果一个小旁友的左右都是比他得分高的,那么不用说,他一定是拿一个糖...原创 2019-11-22 21:57:59 · 2565 阅读 · 0 评论 -
leetcode每日一道(13)神仙思路!找出只出现一次的数字!(其余数字都出现两次、三次)
文章目录1. 其余数字出现两次——小试牛刀2. 其余数字出现三次——神仙解法3. 思路代码1. 其余数字出现两次——小试牛刀题目描述现在有一个整数类型的数组,数组中素只有一个元素只出现一次,其余的元素都出现两次。注意:你需要给出一个线性时间复杂度的算法,你能在不使用额外内存空间的情况下解决这个问题么?Given an array of integers, every elemen...原创 2019-11-21 22:08:26 · 2861 阅读 · 0 评论 -
leetcode每日一道(12)复杂链表的深拷贝
题目描述现在有一个这样的链表:链表的每一个节点都附加了一个随机指针,随机指针可能指向链表中的任意一个节点或者指向空。请对这个链表进行深拷贝。A linked list is given such that each node contains an additional random pointer which could point to any node in the list or ...原创 2019-11-21 16:48:56 · 398 阅读 · 1 评论 -
leetcode每日一道(11)字符串是否能被切分为单词
题目描述给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。例如:给定s=“leetcode”;dict=[“leet”, “code”].返回true,因为"leetcode"可以被分割成"leet code".此题可以看成是我上一篇的题目的简易版,只要找到合法的切分,就返回tru...原创 2019-11-19 23:00:54 · 383 阅读 · 0 评论 -
leetcode每日一道(10)字符串切分为单词的所有可能的结果
题目描述给定一个字符串s和一组单词dict,在s中添加空格将s变成一个句子,使得句子中的每一个单词都是dict中的单词返回所有可能的结果例如:给定的字符串s =“catsanddog”,dict =[“cat”, “cats”, “and”, “sand”, “dog”].返回的结果为[“cats and dog”, “cat sand dog”].思路这道题首先想到的就是递归的...原创 2019-11-19 22:31:19 · 1137 阅读 · 0 评论 -
leetcode每日一道(9):判断给定的链表中是否有环
题目描述判断给定的链表中是否有环扩展:你能给出不利用额外空间的解法么?思路快慢指针代码class Solution {public: bool hasCycle(ListNode *head) { if (!head) return 0; auto fast = head, slow = head; ...原创 2019-11-17 10:33:07 · 312 阅读 · 0 评论 -
leetcode每日一道(8):神仙思路!对于一个给定的链表,求环的入口节点
文章目录1. 题目描述2. 一般思路3. 神奇思路4. 代码4.1 普通思路4.2 神仙思路1. 题目描述对于一个给定的链表,返回环的入口节点,如果没有环,返回null拓展:你能给出不利用额外空间的解法么?2. 一般思路当然这个题如果见都没见过的话,可能就很难了,链表我们一般只给定链表头,然后节点的两个属性,一个是next,一个是val,那么如何根据这两个属性,就知道链表环的入口节...原创 2019-11-16 12:31:36 · 537 阅读 · 0 评论 -
leetcode每日一道(7):搞懂链表复杂重排序问题(快慢指针、链表翻转、链表合并)
题目将给定的单链表L: L 0→L 1→…→L n-1→L n,重新排序为: L 0→L n →L 1→L n-1→L 2→L n-2→…要求使用原地算法,并且不改变节点的值例如:对于给定的单链表{1,2,3,4},将其重新排序为{1,4,2,3}.思路分析不知大家看懂了题目了吗,相当于是一个链表中,首尾各取一个组成新的链表,不断重复直到整个链表的元素遍历完成。本题的思路是这样的:...原创 2019-11-15 21:34:45 · 257 阅读 · 1 评论 -
leetcode每日一道(6):求给定的二叉树的后序遍历。
1. 题目题目描述求给定的二叉树的后序遍历。例如:给定的二叉树为{1,#,2,3},1↵ ↵ 2↵ /↵ 3↵返回[3,2,1].备注;用递归来解这道题太没有新意了,可以给出迭代的解法么?2. 思路2.1 递归我们先考虑一下递归的思路,从三种遍历来看(前序、中序、后序),都是可以通过递归来实现的,只需要不断调用自身函数,但是问题就是带来的空间复杂度太高。...原创 2019-11-13 23:08:41 · 385 阅读 · 0 评论 -
leetcode每日一道(5):使用插入排序对链表进行排序。
题目描述使用插入排序对链表进行排序。Sort a linked list using insertion sort.思路可以开辟一条新的链表来存储,并且这里也用到了虚拟头节点的技巧。没什么难的事情,主要就是对链表的操作要熟悉,要考虑到断链之后新链头的保存,然后这个复杂度是o(n^2)的,无他。/** * Definition for singly-linked list. * s...原创 2019-11-13 16:29:24 · 332 阅读 · 0 评论 -
leetcode每日一道(4):在O(n log n)的时间内使用常数级空间复杂度对链表进行排序
题目描述在O(n log n)的时间内使用常数级空间复杂度对链表进行排序。Sort a linked list in O(n log n) time using constant space complexity.思路既然是在常数的空间复杂度,即o(1)的空间复杂度内,那么递归是不能考虑了,这种情况下,只能考虑自底向上的循环方案。代码就在下面,要注意的几点问题是:虚拟头结点的使用...原创 2019-11-12 09:40:31 · 1060 阅读 · 2 评论 -
leetcode每日一道(3)最多能有多少个点位于同一直线上
题目对于给定的n个位于同一二维平面上的点,求最多能有多少个点位于同一直线上Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.思路复杂度肯定是o(n^2)的,即两层遍历可以完成任务。那么最大的问题的就是如何实现了,需要考虑的有如下几点:1...原创 2019-11-07 10:31:23 · 957 阅读 · 0 评论 -
leetcode每日一道(2):计算逆波兰式(后缀表达式)的值
题目计算逆波兰式(后缀表达式)的值运算符仅包含"+","-","*“和”/",被操作数可能是整数或其他表达式例如:[“2”, “1”, “+”, “3”, “*”] -> ((2 + 1) * 3) -> 9↵ [“4”, “13”, “5”, “/”, “+”] -> (4 + (13 / 5)) -> 6Evaluate the value of an a...原创 2019-11-04 22:55:13 · 717 阅读 · 0 评论 -
leetcode每日一道(1):如何求二叉树的最小(最大)深度
题目:求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf ...原创 2019-11-03 23:07:50 · 689 阅读 · 0 评论 -
深度优先搜索+剪枝实战,你都弄懂了吗
我必须记这样一个坑爹的校招题题目描述一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移...原创 2019-02-27 10:41:31 · 1410 阅读 · 0 评论