Moz的博客

  • 首页

  • 读书

  • 标签

  • 分类

  • 归档

  • 搜索

LeetCode36 有效的数独

发表于 2018-06-04 | 分类于 算法 , LeetCode

LeetCode 第36题

问题描述

判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。

  1. 数字 1-9 在每一行只能出现一次。
  2. 数字 1-9 在每一列只能出现一次。
  3. 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。

img

上图是一个部分填充的有效的数独。

数独部分空格内已填入了数字,空白格用 '.' 表示。

示例 1:

1
2
3
4
5
6
7
8
9
10
11
12
13
输入:
[
["5","3",".",".","7",".",".",".","."],
["6",".",".","1","9","5",".",".","."],
[".","9","8",".",".",".",".","6","."],
["8",".",".",".","6",".",".",".","3"],
["4",".",".","8",".","3",".",".","1"],
["7",".",".",".","2",".",".",".","6"],
[".","6",".",".",".",".","2","8","."],
[".",".",".","4","1","9",".",".","5"],
[".",".",".",".","8",".",".","7","9"]
]
输出: true

示例 2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
输入:
[
["8","3",".",".","7",".",".",".","."],
["6",".",".","1","9","5",".",".","."],
[".","9","8",".",".",".",".","6","."],
["8",".",".",".","6",".",".",".","3"],
["4",".",".","8",".","3",".",".","1"],
["7",".",".",".","2",".",".",".","6"],
[".","6",".",".",".",".","2","8","."],
[".",".",".","4","1","9",".",".","5"],
[".",".",".",".","8",".",".","7","9"]
]
输出: false
解释: 除了第一行的第一个数字从 5 改为 8 以外,空格内其他数字均与 示例1 相同。
但由于位于左上角的 3x3 宫内有两个 8 存在, 因此这个数独是无效的。

说明:

  • 一个有效的数独(部分已被填充)不一定是可解的。
  • 只需要根据以上规则,验证已经填入的数字是否有效即可。
  • 给定数独序列只包含数字 1-9 和字符 '.' 。
  • 给定数独永远是 9x9 形式的。
阅读全文 »

LeetCode375 猜数字大小 II

发表于 2018-06-02 | 分类于 算法 , LeetCode

LeetCode第375题

问题描述

我们正在玩一个猜数游戏,游戏规则如下:

我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字。

每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了。

然而,当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金。直到你猜到我选的数字,你才算赢得了这个游戏。

示例:

1
2
3
4
5
6
7
8
9
n = 10, 我选择了8.

第一轮: 你猜我选择的数字是5,我会告诉你,我的数字更大一些,然后你需要支付5块。
第二轮: 你猜是7,我告诉你,我的数字更大一些,你支付7块。
第三轮: 你猜是9,我告诉你,我的数字更小一些,你支付9块。

游戏结束。8 就是我选的数字。

你最终要支付 5 + 7 + 9 = 21 块钱。

给定一个 n ≥ 1,计算你至少需要拥有多少现金才能确保你能赢得这个游戏。

致谢:

特别感谢 @agave 和 @StefanPochmann 添加了这道题目,并且提供了所有测试用例。

阅读全文 »
相关文章
  • LeetCode25 k个一组翻转链表
  • LeetCode29 两数相除
  • LeetCode32 最长有效括号

Scala 下划线的用途

发表于 2018-05-30 | 分类于 Scala

转载自 Scala基础 - 下划线使用指南 @joymufeng

阅读全文 »

LeetCode32 最长有效括号

发表于 2018-05-25 | 分类于 算法 , LeetCode

LeetCode第32题

问题描述

给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。

示例 1:

1
2
3
输入: "(()"
输出: 2
解释: 最长有效括号子串为 "()"

示例 2:

1
2
3
输入: ")()())"
输出: 4
解释: 最长有效括号子串为 "()()"
阅读全文 »
相关文章
  • LeetCode375 猜数字大小 II

图分析总结

发表于 2018-05-25 | 更新于 2018-07-26 | 分类于 知识图谱 , 图分析

图分析是知识图谱(Knowledge Graph)图结构消费的重要组成部分,基于图分析算法的应用近年来层出不穷,比如:Palantir利用关联分析指导复杂战场环境下的军事行动、天眼查发现企业关联关系、拓尔思水晶球、宜信金融反欺诈等等。

本文首先对图分析算法进行归纳总结,后期将结合现有的工具,详细介绍图分析每个算法的实现以及应用案例。

阅读全文 »

Scala 隐式转换implicit详解

发表于 2018-05-24 | 更新于 2018-05-25 | 分类于 Scala

最近在使用Spark-GraphX做图相关的算法分析,想着深入看看源码的实现。由于对Scala不熟悉,只能边看源码边去了解Scala的特性。在分析过程中,发现很多地方使用implicit关键词,就想深入了解下implicit。

阅读全文 »

Python 小整数与大整数的处理机制以及整体解释与逐行解释的区别

发表于 2018-05-17 | 更新于 2018-07-23 | 分类于 Python

分析以下代码的执行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python3
# coding: utf-8

a = 256
b = 256

c = 257
d = 257

def foo():
e = 256
f = 257
g = 257

print('a is b', a is b)
print('c is d', c is d)
print('a is e', a is e)
print('c is f', c is f)
print('f is g', f is g)

foo()
阅读全文 »

LeetCode31 下一个排列

发表于 2018-05-04 | 更新于 2018-05-20 | 分类于 算法 , LeetCode

LeetCode第31题

问题描述

实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。

如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。

必须原地修改,只允许使用额外常数空间。

以下是一些例子,输入位于左侧列,其相应输出位于右侧列。
1,2,3 → 1,3,2
3,2,1 → 1,2,3
1,1,5 → 1,5,1

阅读全文 »
相关文章
  • LeetCode39 组合总和
  • LeetCode41 缺失的第一个正数

LeetCode30 与所有单词相关联的字串

发表于 2018-05-03 | 更新于 2018-05-20 | 分类于 算法 , LeetCode

LeetCode第30题

问题描述

给定一个字符串 s 和一些长度相同的单词 words。在 s 中找出可以恰好串联 words 中所有单词的子串的起始位置。

注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。

示例 1:

1
2
3
4
5
6
输入:
s = "barfoothefoobarman",
words = ["foo","bar"]
输出: [0,9]
解释: 从索引 0 和 9 开始的子串分别是 "barfoor" 和 "foobar" 。
输出的顺序不重要, [9,0] 也是有效答案。

示例 2:

1
2
3
4
输入:
s = "wordgoodstudentgoodword",
words = ["word","student"]
输出: []
阅读全文 »

LeetCode29 两数相除

发表于 2018-05-01 | 更新于 2018-05-20 | 分类于 算法 , LeetCode

LeetCode第29题

问题描述

给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。

返回被除数 dividend 除以除数 divisor 得到的商。

示例 1:

1
2
输入: dividend = 10, divisor = 3
输出: 3

示例 2:

1
2
输入: dividend = 7, divisor = -3
输出: -2

说明:

  • 被除数和除数均为 32 位有符号整数。
  • 除数不为 0。
  • 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。本题中,如果除法结果溢出,则返回 2^31 − 1。
阅读全文 »
相关文章
  • LeetCode25 k个一组翻转链表
  • LeetCode375 猜数字大小 II
123
Moz

Moz

24 日志
13 分类
49 标签
GitHub
友情链接
  • 王辉的博客
  • lxw的大数据田地
  • Marko A. Rodriguez
© 2018 Moz
由 Hexo 强力驱动 v3.7.1
|
主题 – NexT.Pisces v6.4.0