自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python数据读取(excel、csv、tsv)

excel读取#读取列表P 必须把附件与本程序置于同一路径!from openpyxl import *wb=load_workbook('附件.xlsx')sheet=wb.get_sheet_by_name('Sheet1')def r_xlxs(x):#读取数据到列表P L=[] for i in sheet[x]: L.append(i.value) return LB=r_xlxs('B')C=r_xlxs('C')#有多列的自己加

2022-05-07 13:33:26 723

原创 Emmet官方文档学习(缩写部分)

Emmet官方文档学习Emmet 官方文档文章目录Emmet官方文档学习HTML & XML 缩写分组ID&CLASS编号修饰符文本隐式标签名“Lorem Ipsum” 生成器CSS 缩写❕注意事项Emmet遇到空格后停止解析缩写。(缩写不是模板语言,不需要可读性,即写即用。)缩写无需另起一行,可以在文本的任意位置书写并展开缩写。没必要书写复杂的缩写。停止这样的认识:书写是网页开发中最慢的过程。你将很快发现书写一个复杂的缩写比起使用多个简短缩写,要慢得多并且容易出错。HTM

2021-08-27 15:08:53 348

原创 PTA完全二叉树的层序遍历 (25 分)

完全二叉树的层序遍历 (25 分)一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。给定一棵完全二叉树的后序遍历,请你给出这棵树的层序遍历结果。输入格式:输入在第一行中给出正整数 N(≤30),即树中结点个数。第二行给出后序遍历序列,为 N 个不超过 100 的正整数。同一行中所有数字都以空格分隔。输出格式:在一行中输出该树的层序遍历序列。所有数

2021-03-22 20:27:59 1965 7

原创 MinGW & CygWin、mingw64-gcc & cygwin-gcc区别

MinGW 与 CygWin 都能让你在 windows 下编译 unix 风格的 C/C++ 代码。MinGW 与 CygWin 的区别小标题是参考网址((Back to Windows With WSL or CygWin ?MinGW:修改编译器,让 windows 下的编译器把诸如 fork 的调用翻译成等价的形式。CygWin:修改库,让 windows 提供一个类似 unix 提供的库,他们对程序的接口如同 unix 一样,而这些库当然是由 win32 的 API 实现的。最大区

2021-02-21 16:25:18 1737

原创 LeetCode第221场周赛T3 球会落何处

5210. 球会落何处题目难度:Medium题目描述用一个大小为 m x n 的二维网格 grid 表示一个箱子。你有 n 颗球。箱子的顶部和底部都是开着的。箱子中的每个单元格都有一个对角线挡板,跨过单元格的两个角,可以将球导向左侧或者右侧。将球导向右侧的挡板跨过左上角和右下角,在网格中用 1 表示。将球导向左侧的挡板跨过右上角和左下角,在网格中用 -1 表示。在箱子每一列的顶端各放一颗球。每颗球都可能卡在箱子里或从底部掉出来。如果球恰好卡在两块挡板之间的 “V” 形图案,或者被一块挡导向到箱

2020-12-27 12:07:40 335 2

原创 力扣第 42 场双周赛T1:无法吃午餐的学生数量

5621. 无法吃午餐的学生数量题目难度:Easy(考完英语回来就做出来一道题,懂了,我是垃圾)学校的自助午餐提供圆形和方形的三明治,分别用数字 0 和 1 表示。所有学生站在一个队列里,每个学生要么喜欢圆形的要么喜欢方形的。餐厅里三明治的数量与学生的数量相同。所有三明治都放在一个栈里,每一轮:如果队列最前面的学生 喜欢 栈顶的三明治,那么会 拿走它 并离开队列。否则,这名学生会 放弃这个三明治 并回到队列的尾部。这个过程会一直持续到队列里所有学生都不喜欢栈顶的三明治为止。给你两个整数数组

2020-12-27 00:00:10 642 2

原创 LeetCode49. 字母异位词分组

49. 字母异位词分组给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。Solution用排序后的字符串做key,存到字典里class Solution(object): def

2020-12-14 08:10:01 134

原创 正则表达式总结

Python如何使用正则表达式import repattern = re.compile(ur'')str = u''print(pattern.search(str))运算符大全正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符含义:这个字符有特殊含义,而不是字符本身含义。可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。任何元字符想表示原义,前边加 \ 即可。小注:多个字符区间时:[a-zA-Z0-9],不要乱添空格空白元字符

2020-12-12 23:12:57 150

原创 LeetCode376. 摆动序列

376. 摆动序列如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(

2020-12-12 08:57:41 138

原创 LeetCode649. Dota2 参议院

649. Dota2 参议院Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇)Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。宣布胜利:如果参议员发现有权利投票的参议员都是同一个阵营的,他可以宣布胜利并决定在游戏中的有关变化。给定一个字符串代表每个参

2020-12-11 09:14:23 180

原创 LeetCode31. 下一个排列——双指针

LeetCode31. 下一个排列Difficulty: 中等实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。示例 1:输入:nums = [1,2,3]输出:[1,3,2]示例 2:输入:nums = [3,2,1]输出:[1,2,3]示例 3:输入:nums = [1,1,5]输出:[1,5,1]示例 4:输入:nums =

2020-12-10 18:36:31 93

原创 Leetcode1041. 困于环中的机器人

1041. 困于环中的机器人题目在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。机器人可以接受下列三条指令之一:“G”:直走 1 个单位“L”:左转 90 度“R”:右转 90 度机器人按顺序执行指令 instructions,并一直重复它们。只有在平面中存在环使得机器人永远无法离开时,返回 true。否则,返回 false。示例示例 1:输入:"GGLLGG"输出:true解释:机器人从 (0,0) 移动到 (0,2),转 180 度,然后回到 (0,0)。重复

2020-11-27 15:52:51 232 1

原创 Leetcode134. 加油站

solution我觉着写之前要先分析好情况,考虑太少了而且对过程分析马马虎虎就开始写会写错吧((因为加完油马上就去下一站了,gas和cost可以合成一个。比起一般模拟把所有路径都走一遍,如果这次的起点是a,可以在这次失败后的下一站b重新开始。因为失败之前整体上说油都是不减的,在(a,b)之间选点都不行((好水的解释class Solution(object): def canCompleteCircuit(self, gas, cost): """ :typ.

2020-11-18 20:46:20 129

原创 Leetcode1122.数组的相对排序

换edge后发现插件好少,而且不想开开发者模式。。于是力扣题目转markdown没得用了,水????题目解法因为元素范围0~1000蛮少的,用桶排序/** * Note: The returned array must be malloced, assume caller calls free(). */int* relativeSortArray(int* arr1, int arr1Size, int* arr2, int arr2Size, int* returnSize){

2020-11-14 10:27:16 77

原创 Leetcode 633. 平方数之和——双指针

167题的变式,水((633. 平方数之和Difficulty: 中等给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a<sup>2</sup> + b<sup>2</sup> = c 。示例 1:输入:c = 5输出:true解释:1 * 1 + 2 * 2 = 5示例 2:输入:c = 3输出:false示例 3:输入:c = 4输出:true示例 4:输入:c = 2输出:true示例 5:

2020-11-05 23:15:34 146 2

原创 Leetcode941. 有效的山脉数组

水( 分类讨论辣鸡->面向测试用例编程941. 有效的山脉数组Difficulty: 简单给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] < ... A[i-1] < A[i]A[i] > A[i+1] > ... &g

2020-11-03 08:00:11 130 1

原创 力扣报错heap-buffer-overflow

今天的签到题,做完之后力扣报错:heap-buffer-overflow,原因是对地址的非法访问。(找了半天错。。。代码如下:/** * Note: The returned array must be malloced, assume caller calls free(). */int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){ int *X=(int *)ma

2020-11-02 22:25:43 3588 1

原创 Leetcode135. 分发糖果

135. 分发糖果Difficulty: 困难老师想给孩子们分发糖果,有 N&nbsp;个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子

2020-11-01 18:33:36 153

原创 C++期中测试总结

平时没用过C,考试写太慢了…(痛心疾首而且用力扣用的输入输出数据都不会了…结论:做题少,接着做题1.数列求和:有个样例过不去,因为一开始a[]数据类型设的int,溢出了…(这增长速度)(double永远滴神…八错,答案也用了double),也没想起来拿边界值排个错#include <iostream>#include <stdio.h>using namespace std;int main(){ double a[200]; a[0]=1,a[1].

2020-10-16 20:33:10 389 1

原创 Leetcode89.格雷编码

89. 格雷编码Difficulty: 中等格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。格雷编码序列必须以 0 开头。示例 1:输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的 n,其格雷编码序列并不唯一。例如,[0,2,3,1] 也是一个有效的格雷编码序列。00 - 010 - 211

2020-10-01 10:47:31 102 1

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

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

2020-09-29 20:02:14 856

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

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

2020-09-25 10:03:07 144

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

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

2020-09-25 09:19:48 133

原创 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 220

原创 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 180

原创 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 72

原创 一队蚂蚁爬杆子问题

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

2020-09-23 21:16:11 436

原创 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 87 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 651 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 147

原创 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 88 1

原创 Leetcode9. 回文数

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

2020-09-20 20:34:09 195

原创 leetcode20. 有效的括号

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

2020-09-11 09:51:34 106 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 75 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 487

原创 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 850

原创 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 251

原创 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 150

原创 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 288

原创 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 136

空空如也

空空如也

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

TA关注的人

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