Fork me on GitHub
晴宝

吃饱好减肥


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

leetcode之168. Excel表列名称

发表于 2019-04-03 | 分类于 leetcode
字数统计 364 字 | 阅读时长 1 分钟

题目描述:

给定一个正整数,返回它在 Excel 表中相对应的列名称。

例如,

1
2
3
4
5
6
7
8
9
>     1 -> A
> 2 -> B
> 3 -> C
> ...
> 26 -> Z
> 27 -> AA
> 28 -> AB
> ...
>

示例 1:

1
2
3
> 输入: 1
> 输出: "A"
>

示例 2:

1
2
3
> 输入: 28
> 输出: "AB"
>

示例 3:

1
2
3
> 输入: 701
> 输出: "ZY"
>
阅读全文 »

leetcode之167. 两数之和 II - 输入有序数组

发表于 2019-04-03 | 分类于 leetcode
字数统计 365 字 | 阅读时长 1 分钟

题目描述:

给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。

函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。

说明:

  • 返回的下标值(index1 和 index2)不是从零开始的。
  • 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。

示例:

1
2
3
4
> 输入: numbers = [2, 7, 11, 15], target = 9
> 输出: [1,2]
> 解释: 2 与 7 之和等于目标数 9 。因此 index1 = 1, index2 = 2 。
>
阅读全文 »

leetcode之160. 相交链表

发表于 2019-04-03 | 分类于 leetcode
字数统计 687 字 | 阅读时长 3 分钟

题目描述:

编写一个程序,找到两个单链表相交的起始节点。

如下面的两个链表:

image-20190403135046507

在节点 c1 开始相交。

示例 1:

image-20190403135114279

1
2
3
4
>输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3
>输出:Reference of the node with value = 8
>输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。
>

示例 2:

image-20190403135300310

1
2
3
4
>输入:intersectVal = 2, listA = [0,9,1,2,4], listB = [3,2,4], skipA = 3, skipB = 1
>输出:Reference of the node with value = 2
>输入解释:相交节点的值为 2 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。在 A 中,相交节点前有 3 个节点;在 B 中,相交节点前有 1 个节点。
>

示例 3:

image-20190403135325255

1
2
3
4
5
>输入:intersectVal = 0, listA = [2,6,4], listB = [1,5], skipA = 3, skipB = 2
>输出:null
>输入解释:从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。由于这两个链表不相交,所以 intersectVal 必须为 0,而 skipA 和 skipB 可以是任意值。
>解释:这两个链表不相交,因此返回 null。
>

注意:

  • 如果两个链表没有交点,返回 null.
  • 在返回结果后,两个链表仍须保持原有的结构。
  • 可假定整个链表结构中没有循环。
  • 程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。
阅读全文 »

leetcode之155. 最小栈

发表于 2019-04-03 | 分类于 leetcode
字数统计 227 字 | 阅读时长 1 分钟

题目描述:

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。

  • push(x) – 将元素 x 推入栈中。
  • pop() – 删除栈顶的元素。
  • top() – 获取栈顶元素。
  • getMin() – 检索栈中的最小元素。

示例:

1
2
3
4
5
6
7
8
9
> MinStack minStack = new MinStack();
> minStack.push(-2);
> minStack.push(0);
> minStack.push(-3);
> minStack.getMin(); --> 返回 -3.
> minStack.pop();
> minStack.top(); --> 返回 0.
> minStack.getMin(); --> 返回 -2.
>
阅读全文 »

leetcode之141. 环形链表

发表于 2019-04-03 | 分类于 leetcode
字数统计 283 字 | 阅读时长 1 分钟

题目描述:

给定一个链表,判断链表中是否有环。

为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

示例 1:

1
2
3
4
> 输入:head = [3,2,0,-4], pos = 1
> 输出:true
> 解释:链表中有一个环,其尾部连接到第二个节点。
>

image-20190403112440347

示例 2:

1
2
3
4
> 输入:head = [1,2], pos = 0
> 输出:true
> 解释:链表中有一个环,其尾部连接到第一个节点。
>

image-20190403112552875

示例 3:

1
2
3
4
> 输入:head = [1], pos = -1
> 输出:false
> 解释:链表中没有环。
>

image-20190403112521441

进阶:

你能用 O(1)(即,常量)内存解决此问题吗?

阅读全文 »

leetcode之136. 只出现一次的数字

发表于 2019-04-03 | 分类于 leetcode
字数统计 275 字 | 阅读时长 1 分钟

题目描述:

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

1
2
3
> 输入: [2,2,1]
> 输出: 1
>

示例 2:

1
2
3
> 输入: [4,1,2,1,2]
> 输出: 4
>
阅读全文 »

leetcode之125. 验证回文串

发表于 2019-04-03 | 分类于 leetcode
字数统计 437 字 | 阅读时长 2 分钟

题目描述:

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

1
2
3
> 输入: "A man, a plan, a canal: Panama"
> 输出: true
>

示例 2:

1
2
3
> 输入: "race a car"
> 输出: false
>
阅读全文 »

leetcode之122. 买卖股票的最佳时机 II

发表于 2019-04-03 | 分类于 leetcode
字数统计 440 字 | 阅读时长 1 分钟

题目描述:

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。

注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

示例 1:

1
2
3
4
5
> 输入: [7,1,5,3,6,4]
> 输出: 7
> 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
> 随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
>

示例 2:

1
2
3
4
5
6
> 输入: [1,2,3,4,5]
> 输出: 4
> 解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
> 注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。
> 因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
>

示例 3:

1
2
3
4
> 输入: [7,6,4,3,1]
> 输出: 0
> 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
>
阅读全文 »

leetcode之121. 买卖股票的最佳时机

发表于 2019-04-03 | 分类于 leetcode
字数统计 481 字 | 阅读时长 2 分钟

题目描述:

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。

注意你不能在买入股票前卖出股票。

示例 1:

1
2
3
4
5
>输入: [7,1,5,3,6,4]
>输出: 5
>解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
> 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
>

示例 2:

1
2
3
4
>输入: [7,6,4,3,1]
>输出: 0
>解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
>
阅读全文 »

leetcode之119. 杨辉三角 II

发表于 2019-04-03 | 分类于 leetcode
字数统计 253 字 | 阅读时长 1 分钟

题目描述:

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。

img

在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

1
2
3
> 输入: 3
> 输出: [1,3,3,1]
>

进阶:

你可以优化你的算法到 O(k) 空间复杂度吗?

阅读全文 »
1…789…16
晴宝宝

晴宝宝

151 日志
10 分类
18 标签
GitHub
© 2017 - 2021 晴宝宝
由 Hexo 强力驱动
主题 - NexT.Muse