算法练习
weixin_40520161
这个作者很懒,什么都没留下…
展开
-
leetcode:max-points-on-a-line(直线上最多的点数)
题目描述给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。示例 1:输入: [[1,1],[2,2],[3,3]]输出: 3解释:^|| o| o| o±------------>0 1 2 3 4示例 2:输入: [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]输出: 4...原创 2019-04-16 14:20:51 · 144 阅读 · 0 评论 -
leetcode:136. 只出现一次的数字
题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4思路题目要求不使用额外空间,就不可以用哈希.两个相同的数异或为0,题目给出的数组只有一个元素出现...原创 2019-04-23 09:48:12 · 86 阅读 · 0 评论 -
leetcode:144. 二叉树的前序遍历
题目描述给定一个二叉树,返回它的 前序 遍历。输入: [1,null,2,3]1\2/3输出: [1,2,3]思路方法一:递归方法二:非递归,利用栈,输入根-右-左,输出根-左-右c++实现方法一:class Solution {public: void preorder(TreeNode *root,vector<int> &...原创 2019-04-18 11:47:20 · 122 阅读 · 0 评论 -
leetcode:94. 二叉树的中序遍历
题目描述给定一个二叉树,返回它的中序 遍历。输入: [1,null,2,3]1\2/3输出: [1,3,2]思路方法一:递归方法二:非递归,利用栈c++实现方法一:class Solution {public: void inorder(TreeNode *root,vector<int> &vec) { ...原创 2019-04-18 13:06:30 · 71 阅读 · 0 评论 -
leetcode:137. 只出现一次的数字 II
题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]输出: 99思路除某个元素出现一次外,其余元素均出现三次。当出现两次的时候用一位来记录...原创 2019-04-23 10:28:49 · 81 阅读 · 0 评论 -
leetcode:260. 只出现一次的数字 III
题目描述给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。示例 :输入: [1,2,1,3,2,5]输出: [3,5]注意:结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?思路有两个元素均出现一次,其他元素出现两次,如果将...原创 2019-04-23 10:57:42 · 164 阅读 · 0 评论 -
leetcode:143. reorder-list (重排链表)
题目描述给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->4->5, ...原创 2019-04-18 16:30:16 · 118 阅读 · 0 评论 -
leetcode:135. 分发糖果
题目描述老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例 1:输入: [1,0,2]输出: 5解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。...原创 2019-05-06 09:29:11 · 120 阅读 · 0 评论 -
leetcode:134. 加油站
题目描述在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中...原创 2019-05-06 10:23:54 · 149 阅读 · 0 评论 -
leetcode:138. 复制带随机指针的链表
题目描述给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。示例:输入:{“KaTeX parse error: Expected '}', got 'EOF' at end of input: …":"1","next":{"id”:“2”,“next”:null,“random”:{“KaTeX parse er...原创 2019-04-23 09:36:50 · 198 阅读 · 0 评论 -
leetcode:145. 二叉树的后序遍历
题目描述给定一个二叉树,返回它的 后序 遍历。输入: [1,null,2,3]1\2/3输出: [3,2,1]思路方法一:递归方法二:非递归,按照根-右子树-左子树的顺序入栈,出栈后左右根即为后序遍历方法三:前序遍历是根-左-右,用栈变成根-右-左,再reverse输出c++实现方法一:class Solution {public: vo...原创 2019-04-18 11:22:10 · 80 阅读 · 0 评论 -
leetcode:148. 排序链表
题目描述在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5思路题目要求时间复杂度为O{nlogn),所以考虑归并排序...原创 2019-04-17 12:55:00 · 76 阅读 · 0 评论 -
leetcode:142. 环形链表 II
题目描述给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。思路假设环形链表如上图所示,有两个指针:快指针一次走两步,慢指针一次走一步。如果有环,它们必定会相遇。则可以推出a...原创 2019-04-22 09:24:28 · 86 阅读 · 0 评论 -
leetcode:141. 环形链表
题目描述给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。思路假设环形链表如上图所示,有两个指针:快指针一次走两步,慢指针一次走一步。如果有环,它们必定会相遇。如果没有相遇,则证明没有环。c++实现#include <iostream>...原创 2019-04-22 09:35:51 · 92 阅读 · 0 评论 -
leetcode:139. 单词拆分
题目描述给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode...原创 2019-04-22 10:16:59 · 66 阅读 · 0 评论 -
leetcode: 147. 对链表进行插入排序
题目描述对链表进行插入排序。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1-&...原创 2019-04-17 15:17:43 · 107 阅读 · 0 评论 -
leetcode:140. 单词拆分 II
题目描述给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词你可以假设字典中没有重复的单词。示例 1:输入:s = “catsanddog”wordDict = [“cat”, “cats”, “and”, “sand”, “dog...原创 2019-04-22 11:26:52 · 115 阅读 · 0 评论 -
leetcode: evaluate-reverse-polish-notation(计算逆波兰表达式)
leetcode: evaluate-reverse-polish-notationEvaluate the value of an arithmetic expression in ReversePolish Notation.Valid operators are+,-,,/. Each operand may be an integer oranother expression.用...原创 2019-04-15 12:44:23 · 130 阅读 · 0 评论 -
leetcode:minimum-depth-of-binary-tree(二叉树的最小深度)
leetcode:minimum-depth-of-binary-treeGiven 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 node.给定二...原创 2019-04-15 11:11:51 · 79 阅读 · 0 评论 -
leetcode:clone-graph
题目描述c++实现/** * Definition for undirected graph. * struct UndirectedGraphNode { * int label; * vector<UndirectedGraphNode *> neighbors; * UndirectedGraphNode(int x) : label(x...原创 2019-05-06 11:19:13 · 97 阅读 · 0 评论