Loading

随笔分类 -  acm

摘要:参加了秋季个人赛,不行,不能再闭门造车了。 没有见过大厦长什么样,就只能造茅草屋。 必须打好基础,看看优秀的解法,再继续。 从2方便着手: python基础,熟看两本书《python cookbook》、《fluent python》 算法基础,学习以下两位的教程,labuladong东哥的算法小抄 阅读全文
posted @ 2021-09-11 10:56 wwcg2235
摘要:给定n个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为1。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入:heights = [2,1,5,6,2,3] 输出:10 解释:最大的矩形为图中红色区域,面积为 10 示例 2: 输入: heights = [2, 阅读全文
posted @ 2021-09-11 09:33 wwcg2235
摘要:存在一个按升序排列的链表,给你这个链表的头节点head,请你删除所有重复的元素,使每个元素只出现一次。 返回同样按升序排列的结果链表。 示例 1: 输入:head = [1,1,2] 输出:[1,2] 示例 2: 输入:head = [1,1,2,3,3] 输出:[1,2,3] 提示: 链表中节点数 阅读全文
posted @ 2021-09-11 09:28 wwcg2235
摘要:存在一个按升序排列的链表,给你这个链表的头节点head,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中没有重复出现的数字。 返回同样按升序排列的结果链表。 示例 1: 输入:head = [1,2,3,3,4,4,5] 输出:[1,2,5] 示例 2: 输入:head = [1,1,1, 阅读全文
posted @ 2021-09-11 09:08 wwcg2235
摘要:已知存在一个按非降序排列的整数数组nums,数组中的值不必互不相同。 在传递给函数之前,nums在预先未知的某个下标 k(0 ⇐ k < nums.length)上进行了旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], . 阅读全文
posted @ 2021-09-11 09:03 wwcg2235
摘要:给你一个有序数组nums,请你原地删除重复出现的元素,使每个元素最多出现两次,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1)额外空间的条件下完成。 说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以「引用」方式传递的,这意味着在函 阅读全文
posted @ 2021-09-11 08:43 wwcg2235
摘要:给定一个m x n二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例 1: 输入:boar 阅读全文
posted @ 2021-09-11 08:06 wwcg2235
摘要:给你一个整数数组nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。 解集不能包含重复的子集。你可以按任意顺序返回解集。 示例 1: 输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] 示例 2: 输入:num 阅读全文
posted @ 2021-09-10 13:07 wwcg2235
摘要:给定两个整数n和k,返回范围[1, n]中所有可能的k个数的组合。 你可以按任何顺序返回答案。 示例 1: 输入:n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 示例 2: 输入:n = 1, k = 1 输出:[[1]] 阅读全文
posted @ 2021-09-10 12:52 wwcg2235
摘要:给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。 注意: 对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量。 如果s中存在这样的子串,我们保证它是唯一的答案。 示例 1: 输入:s = "ADOBECO 阅读全文
posted @ 2021-09-10 09:18 wwcg2235
摘要:给定一个包含红色、白色和蓝色,一共n个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数0、 1 和 2分别表示红色、白色和蓝色。 示例 1: 输入:nums = [2,0,2,1,1,0] 输出:[0,0,1,1,2,2] 示例 2: 输 阅读全文
posted @ 2021-09-10 09:04 wwcg2235
摘要:编写一个高效的算法来判断m x n矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3 阅读全文
posted @ 2021-09-10 08:44 wwcg2235
摘要:给定一个m x n的矩阵,如果一个元素为0,则将其所在行和列的所有元素都设为0。请使用原地算法。 进阶: 一个直观的解决方案是使用 O(mn)的额外空间,但这并不是一个好的解决方案。 一个简单的改进方案是使用O(m + n)的额外空间,但这仍然不是最好的解决方案。 你能想出一个仅使用常量空间的解决方 阅读全文
posted @ 2021-09-10 07:54 wwcg2235
摘要:给你两个单词word1和word2,请你计算出将word1转换成word2所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入:word1 = "horse", word2 = "ros" 输出:3 解释: horse -> rors 阅读全文
posted @ 2021-09-10 07:51 wwcg2235
摘要:给你一个字符串path,表示指向某一文件或目录的Unix风格绝对路径(以 '/' 开头),请你将其转化为更加简洁的规范路径。 在Unix风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠 阅读全文
posted @ 2021-09-09 19:41 wwcg2235
摘要:假设你正在爬楼梯。需要n阶你才能到达楼顶。 每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定n是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法 阅读全文
posted @ 2021-09-09 19:26 wwcg2235
摘要:给你一个非负整数x,计算并返回x的平方根。 由于返回类型是整数,结果只保留整数部分,小数部分将被舍去。 注意:不允许使用任何内置指数函数和算符,例如pow(x, 0.5)或者x ** 0.5。 示例 1: 输入:x = 4 输出:2 示例 2: 输入:x = 8 输出:2 解释:8 的平方根是 2. 阅读全文
posted @ 2021-09-09 19:21 wwcg2235
摘要:给定一个单词数组和一个长度maxWidth,重新排版单词,使其成为每行恰好有maxWidth个字符,且左右两端对齐的文本。 你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格' '填充,使得每行恰好有maxWidth个字符。 要求尽可能均匀分配单词间的空格数 阅读全文
posted @ 2021-09-09 19:20 wwcg2235
摘要:给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为非空字符串且只包含数字1和0。 示例 1: 输入: a = "11", b = "1" 输出: "100" 示例 2: 输入: a = "1010", b = "1011" 输出: "10101" 提示: 每个字符串仅由字符 '0' 或 ' 阅读全文
posted @ 2021-09-09 18:49 wwcg2235
摘要:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数0之外,这个整数不会以零开头。 示例 1: 输入:digits = [1,2,3] 输出:[1,2,4] 解释:输入数组表示数字 123。 示例 2: 阅读全文
posted @ 2021-09-09 18:32 wwcg2235