自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 把英文单词转换成ASCII画

转换网站在此如果直接复制发生错位,可以一行一行地粘贴。效果:Hello world

2020-09-29 20:02:14 903

原创 Leetcode213.打家劫舍II——动态规划

213. 打家劫舍 IIDifficulty: 中等你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下, 能够偷窃到的最高金额。示例 1:输入: [2,3,2]输出: 3解释: 你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房

2020-09-25 10:03:07 178

原创 Leetcode198. 打家劫舍——动态规划

198. 打家劫舍Difficulty: 简单你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 =

2020-09-25 09:19:48 172

原创 Leetcode528. 按权重随机选择

528. 按权重随机选择Difficulty: 中等给定一个正整数数组 w ,其中 w[i] 代表下标 i 的权重(下标从 0 开始),请写一个函数 pickIndex ,它可以随机地获取下标 i,选取下标 i 的概率与 w[i] 成正比。例如,对于 w = [1, 3],挑选下标 0 的概率为 1 / (1 + 3) = 0.25 (即,25%),而选取下标 1 的概率为 3 / (1 + 3) = 0.75(即,75%)。也就是说,选取下标 i 的概率为 w[i] / sum(w) 。示例 1

2020-09-24 23:08:31 257

原创 Leetcode229. 求众数 II——摩尔投票法

229. 求众数 IIDifficulty: 中等给定一个大小为n的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。示例 1:输入: [3,2,3]输出: [3]示例 2:输入: [1,1,1,3,3,2,2,2]输出: [1,2]Solution好想吐槽,为啥有Ⅱ没有Ⅰ。。原来有道题是找半数元素的:169. 多数元素因为对复杂度有限制,无脑办法们按理说不能用。所以用摩尔投票法。摩尔投票法分两步,抵消&

2020-09-24 21:52:57 211

原创 Leetcode66. 加一

66. 加一Difficulty: 简单给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。Solution狼灭法​class Solution(object):

2020-09-24 20:08:51 79

原创 一队蚂蚁爬杆子问题

1503. 所有蚂蚁掉下来前的最后一刻Difficulty: 中等有一块木板,长度为 n 个 单位 。一些蚂蚁在木板上移动,每只蚂蚁都以 每秒一个单位 的速度移动。其中,一部分蚂蚁向 左 移动,其他蚂蚁向 右 移动。当两只向 不同 方向移动的蚂蚁在某个点相遇时,它们会同时改变移动方向并继续移动。假设更改方向不会花费任何额外时间。而当蚂蚁在某一时刻 t 到达木板的一端时,它立即从木板上掉下来。给你一个整数 n 和两个整数数组 left 以及 right 。两个数组分别标识向左或者向右移动的蚂蚁在 t

2020-09-23 21:16:11 468

原创 Leetcode38. 外观数组——双指针

38. 外观数列Difficulty: 简单给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。注意:整数序列中的每一项将表示为一个字符串。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:1. 12. 113. 214. 12115. 111221第一项是数字 1描述前一项,这个数是 1 即 “一个 1 ”,记作 11描述前一项,这个数是 11 即 “两个 1 ” ,记作 21描

2020-09-23 20:42:51 114 2

原创 Leetcode6. Z字形变换——模拟法

6. Z 字形变换Difficulty: 中等将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int num

2020-09-21 22:45:02 663 2

原创 Leetcode11. 盛最多水的容器——双指针

11. 盛最多水的容器Difficulty: 中等给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例:输入:[1,8,6,2,

2020-09-21 19:33:46 215

原创 Leetcode7. 整数反转

7. 整数反转Difficulty: 简单给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321** 示例 2:**输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。SolutionLanguag

2020-09-20 21:02:54 98 1

原创 Leetcode9. 回文数

9. 回文数Difficulty: 简单判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?Solution

2020-09-20 20:34:09 200

原创 leetcode20. 有效的括号

20. 有效的括号Difficulty: 简单给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"输出: false示例 5:输入: "{

2020-09-11 09:51:34 113 2

原创 leetcode13. 罗马数字转整数

13. 罗马数字转整数Difficulty: 简单罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做

2020-09-11 09:45:49 84 1

原创 leetcode12. 整数转罗马数字

12. 整数转罗马数字Difficulty: 中等罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做

2020-09-11 09:09:02 568

原创 python的itertools.product()函数

itertools是一个提供迭代器的库。itertools.product()函数返回多个可迭代对象的笛卡尔积。它的等价循环如下:((x,y) for x in A for y in B)示例1:两个列表的笛卡尔积from itertools import *for i in product([7,8,9],[1,2,3]): print (i)输出:(7, 1)(7, 2)(7, 3)(8, 1)(8, 2)(8, 3)(9, 1)(9, 2)(9, 3)示例2:f

2020-09-09 23:07:05 931

原创 leetcode672. 灯泡开关 Ⅱ——减小搜索空间(规律题)

672. 灯泡开关 ⅡDifficulty: 中等现有一个房间,墙上挂有 n 只已经打开的灯泡和 4 个按钮。在进行了 m 次未知操作后,你需要返回这 n 只灯泡可能有多少种不同的状态。假设这 n 只灯泡被编号为 [1, 2, 3 …, n],这 4 个按钮的功能如下:将所有灯泡的状态反转(即开变为关,关变为开)将编号为偶数的灯泡的状态反转将编号为奇数的灯泡的状态反转将编号为 3k+1 的灯泡的状态反转(k = 0, 1, 2, …)示例 1:输入: n = 1, m = 1.输出:

2020-09-09 21:54:21 263

原创 leetcode167. 两数之和 II - 输入有序数组——双指针

167. 两数之和 II - 输入有序数组Difficulty: 简单给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释:

2020-09-07 20:43:10 182

原创 leetcode384.打乱数组——洗牌算法

384. 打乱数组Difficulty: 中等打乱一个没有重复元素的数组。示例:// 以数字集合 1, 2 和 3 初始化数组。int[] nums = {1,2,3};Solution solution = new Solution(nums);// 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。solution.shuffle();// 重设数组到它的初始状态[1,2,3]。solution.reset();// 随机返回数组[1,2,3

2020-09-07 19:24:34 343

原创 leetcode204. 计数质数——素数筛

204. 计数质数Difficulty: 简单统计所有小于非负整数 _n _的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。Solution上素数筛((一个知识点水两遍这个表大了好吃内存…有待解决if n<2: return 0p=[1]*ns=0for i in range(2,n): if p[i]==1: k=i s+=1 while

2020-09-07 18:32:10 166

原创 leetcode292. Nim游戏——博弈论

292. Nim 游戏Difficulty: 简单你和你的朋友,两个人一起玩 :桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论你拿走 1 块、2 块 还是 3 块石头,最后一块石头总是会被你的朋友拿走。Solution分析:当先

2020-09-07 18:14:46 111

原创 Sublime Text安装Package Control

这里是英文解答Package Control是 Sublime Text包管理器。它包含可供安装的2,500多个软件包的列表,用户可以自己添加任何GitHub 或BitBucket存储库。简单的说,sublime只有安装了Package control组件,后期才能安装各种不同的插件。如果已经安装,在首选项(Preferences)里可以看见插件控制(Package Control)。我的ST3好像一开始就自带了方法一ctrl+shift+P调出搜索框,寻找install package co

2020-09-06 19:10:32 198

原创 leetcode877. 石子游戏——博弈论

877. 石子游戏Difficulty: 中等亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢得比赛时返回 true ,当李赢得比赛时返回 false 。示例:输入:[5,3,4,5]

2020-09-06 15:35:49 170

原创 python报错“TabError: inconsistent use of tabs and spaces in indentation“处理方法

python老报这个错,比如这个程序⬇给了个报错它指哪行就是说那行前一行或者那行有tab,不是真空格。从IDE里还看不出来,在Sublime Text里选中文本,可以清楚看到有个地方是横线。(IDE还不如个编辑器了????)最前边的比如第5行的缩进肯定没问题,可以把它复制了粘到第6行。也可以试探一下四个空到底能不能分开,tab是一整块的。不知道为啥,有时候按tab就是横线不是四个点。。。所以设置按tab后输入4个空格一劳永逸((...

2020-09-04 19:34:27 311

原创 素数筛(python、C)

一、素数表(筛法)例如想求小于100的所有素数,初始化一个下标直到99的列表,均赋值为1。下标代表数字,值为1/0代表是/否为素数。从2开始,列表里它的倍数都非素数,于是把它们赋值0,不再参与运算。之后是3、5(4、6被2消掉了)、7…以此类推。python:#通过构造素数表,找到小于n的所有素数n=100p=[1]*n#下标代表数字(0,1没用不用管),1/0代表是否为素数for i in range(2,n): if p[i]==1: k=2 whil

2020-09-04 13:21:26 525

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除