leetcode
scu_南
Life
展开
-
leetcode 102.二叉树的层次遍历
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如: 给定二叉树: [3,9,20,null,null,15,7],3 / \ 9 20 / \ 15 7 返回其层次遍历结果:[ [3], [9,20], [15,7] ] /** * Definition for a bin...原创 2018-08-22 16:22:51 · 612 阅读 · 0 评论 -
leetcode 498. 对角线遍历
给定一个含有 M x N 个元素的矩阵(M行,N列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。示例:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,4,7,5,3,6,8,9]说明:给定矩阵中的元素总数不会超过 100000 。这道题的思路就是判断一下边界,用一个up变量记录方向,碰...原创 2018-09-06 17:44:37 · 584 阅读 · 0 评论 -
leetcode 217. 存在重复元素(C++)
给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true这道题的思路最容易想到的就是双重f...原创 2018-08-30 14:42:39 · 745 阅读 · 0 评论 -
leetcode 189. 旋转数组
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99...原创 2018-08-30 12:37:52 · 115 阅读 · 0 评论 -
leetcode 122. 买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔...原创 2018-08-29 23:01:45 · 162 阅读 · 0 评论 -
leetcode 26. 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:...原创 2018-08-29 11:32:28 · 151 阅读 · 0 评论 -
leetcode 101. 对称二叉树
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代两种方法解决这...原创 2018-08-24 17:06:18 · 118 阅读 · 0 评论 -
leetcode 66. 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。...原创 2018-08-31 09:42:11 · 118 阅读 · 0 评论 -
leetcode 160. 相交链表
编写一个程序,找到两个单链表相交的起始节点。例如,下面的两个链表:A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3在节点 c1 开始相交。注意:如果两个链表没有交点,返回 null. 在返回结果...原创 2018-08-23 16:24:05 · 104 阅读 · 0 评论 -
leetcode 136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4这道题的可以考虑使用异或操作,下面对异或操作做一个简单的介绍: 异或运算规则: 0 ^ 0 = 0...原创 2018-08-30 17:17:43 · 197 阅读 · 0 评论 -
leetcode 142. 环形链表 II
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。说明:不允许修改给定的链表。进阶: 你是否可以不用额外空间解决此题?优化后解法://使用快慢指针来进行求解//画图可得(非环的线性部分为L,入环节点到第一次相遇的节点为a,环剩余部分为b)://第一次相遇:2(L+a)=(L+a)+b+a,得:L=b//所以第一次相遇时,让慢指针回到head节...原创 2018-08-22 20:22:36 · 530 阅读 · 0 评论 -
leetcode 141. 环形链表
给定一个链表,判断链表中是否有环。进阶: 你能否不使用额外空间解决此题?优化后解法://主要通过判断是否遇到链表尾,是的话提前结束循环;//优化时间:16ms->8msclass Solution {public: bool hasCycle(ListNode *head) { if(head==NULL||head->next==NUL...原创 2018-08-22 19:17:55 · 99 阅读 · 0 评论 -
leetcode 104. 二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。优化后解法://对每个节点,当前节点为空的话,返回0;//不为空,...原创 2018-08-22 18:37:39 · 121 阅读 · 0 评论 -
leetcode 35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0一道典型...原创 2018-09-23 15:51:32 · 224 阅读 · 0 评论