Jerring


  • 首页

  • 标签

  • 分类

  • 归档

LeetCode401-二进制手表

发表于 2019-06-06 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/binary-watch/

中文链接:https://leetcode-cn.com/problems/binary-watch/

题目详述

二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。

每个 LED 代表一个 0 或 1,最低位在右侧。

img

例如,上面的二进制手表读取 “3:25”。

给定一个非负整数 n 代表当前 LED 亮着的数量,返回所有可能的时间。

案例:

1
2
输入: n = 1
返回: ["1:00", "2:00", "4:00", "8:00", "0:01", "0:02", "0:04", "0:08", "0:16", "0:32"]

注意事项:

  • 输出的顺序没有要求。
  • 小时不会以零开头,比如 “01:00” 是不允许的,应为 “1:00”。
  • 分钟必须由两位数组成,可能会以零开头,比如 “10:2” 是无效的,应为 “10:02”。
阅读全文 »

LeetCode397-整数替换

发表于 2019-06-05 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/integer-replacement/

中文链接:https://leetcode-cn.com/problems/integer-replacement/

题目详述

给定一个正整数 n,你可以做如下操作:

  1. 如果 n 是偶数,则用 n / 2替换 n。

  2. 如果 n 是奇数,则可以用 n + 1或n - 1替换 n。

    n 变为 1 所需的最小替换次数是多少?

示例 1:

1
2
3
4
5
6
7
8
输入:
8

输出:
3

解释:
8 -> 4 -> 2 -> 1

示例 2:

1
2
3
4
5
6
7
8
9
10
输入:
7

输出:
4

解释:
7 -> 8 -> 4 -> 2 -> 1
或
7 -> 6 -> 3 -> 2 -> 1
阅读全文 »

LeetCode393-UTF-8编码验证

发表于 2019-06-05 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/utf-8-validation/

中文链接:https://leetcode-cn.com/problems/utf-8-validation/

题目详述

UTF-8 中的一个字符可能的长度为 1 到 4 字节,遵循以下的规则:

  1. 对于 1 字节的字符,字节的第一位设为0,后面7位为这个符号的unicode码。
  2. 对于 n 字节的字符 (n > 1),第一个字节的前 n 位都设为1,第 n+1 位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

这是 UTF-8 编码的工作方式:

1
2
3
4
5
6
7
Char. number range  |        UTF-8 octet sequence
(hexadecimal) | (binary)
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

给定一个表示数据的整数数组,返回它是否为有效的 utf-8 编码。

注意:
输入是整数数组。只有每个整数的最低 8 个有效位用来存储数据。这意味着每个整数只表示 1 字节的数据。

示例 1:

1
2
3
4
data = [197, 130, 1], 表示 8 位的序列: 11000101 10000010 00000001.

返回 true 。
这是有效的 utf-8 编码,为一个2字节字符,跟着一个1字节字符。

示例 2:

1
2
3
4
5
6
data = [235, 140, 4], 表示 8 位的序列: 11101011 10001100 00000100.

返回 false 。
前 3 位都是 1 ,第 4 位为 0 表示它是一个3字节字符。
下一个字节是开头为 10 的延续字节,这是正确的。
但第二个延续字节不以 10 开头,所以是不符合规则的。
阅读全文 »

LeetCode318-最大单词长度乘积

发表于 2019-06-05 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/maximum-product-of-word-lengths/

中文链接:https://leetcode-cn.com/problems/maximum-product-of-word-lengths/

题目详述

给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。

示例 1:

1
2
3
输入: ["abcw","baz","foo","bar","xtfn","abcdef"]
输出: 16
解释: 这两个单词为 "abcw", "xtfn"。

示例 2:

1
2
3
输入: ["a","ab","abc","d","cd","bcd","abcd"]
输出: 4
解释: 这两个单词为 "ab", "cd"。

示例 3:

1
2
3
输入: ["a","aa","aaa","aaaa"]
输出: 0
解释: 不存在这样的两个单词。
阅读全文 »

LeetCode201-数字范围按位与

发表于 2019-06-05 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/bitwise-and-of-numbers-range/

中文链接:https://leetcode-cn.com/problems/bitwise-and-of-numbers-range/

题目详述

给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。

示例 1:

1
2
输入: [5,7]
输出: 4

示例 2:

1
2
输入: [0,1]
输出: 0
阅读全文 »

LeetCode371-两整数之和

发表于 2019-06-05 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/sum-of-two-integers/

中文链接:https://leetcode-cn.com/problems/sum-of-two-integers/

题目详述

不使用运算符 + 和 - ,计算两整数 a 、b 之和。

示例 1:

1
2
输入: a = 1, b = 2
输出: 3

示例 2:

1
2
输入: a = -2, b = 3
输出: 1
阅读全文 »

LeetCode260-只出现一次的数字III

发表于 2019-06-05 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/single-number-iii/

中文链接:https://leetcode-cn.com/problems/single-number-iii/

题目详述

给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。

示例 :

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

注意:

  1. 结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。
  2. 你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?
阅读全文 »

LeetCode190-颠倒二进制位

发表于 2019-06-04 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/reverse-bits/

中文链接:https://leetcode-cn.com/problems/reverse-bits/

题目详述

颠倒给定的 32 位无符号整数的二进制位。

示例 1:

1
2
3
4
输入: 00000010100101000001111010011100
输出: 00111001011110000010100101000000
解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,
因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。

示例 2:

1
2
3
4
输入:11111111111111111111111111111101
输出:10111111111111111111111111111111
解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293,
因此返回 3221225471 其二进制表示形式为 10101111110010110010011101101001。

提示:

  • 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。
  • 在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。

进阶:
如果多次调用这个函数,你将如何优化你的算法?

阅读全文 »

LeetCode268-缺失数字

发表于 2019-06-03 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/missing-number/

中文链接:https://leetcode-cn.com/problems/missing-number/

题目详述

给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。

示例 1:

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

示例 2:

1
2
输入: [9,6,4,2,3,5,7,0,1]
输出: 8

说明:
你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?

阅读全文 »

LeetCode137-只出现一次的数字II

发表于 2019-06-03 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/single-number-ii/

中文链接:https://leetcode-cn.com/problems/single-number-ii/

题目详述

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

说明:

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

示例 1:

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

示例 2:

1
2
输入: [0,1,0,1,0,1,99]
输出: 99
阅读全文 »
1…202122…47
Jerring

Jerring

Talk is cheap, show me the code.

462 日志
4 分类
24 标签
© 2019 Jerring
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4