
LeetCode
jack-hui6
iVC lab member, acm retired players
展开
-
数组常见溢出易错点 c/c++ 附练习力扣189旋转数组
1. 声明变量时int temp[k];这里就要保证k是大于零的, 否则会出错2. 加减乘除时int temp[k-1];int temp[k+1];int tmep[2*k]3. 字符串最后一个为"\0",要一个下标char ch[2] = "a";原创 2021-06-28 22:35:59 · 174 阅读 · 1 评论 -
抄袭检测
Problem: 抄袭检测Alice是文化路46这个女子偶像团体的粉丝,支持着这个团体的很多成员,如与田祐,白石麻,也听着她们推出的各个单曲。然而有一天,当Alice一如既往地打开霹雳霹雳寻找有趣的视频时,他发现一个uq主上传了一个原创歌曲,但这个所谓的原创歌曲似乎似曾相识。。。Alice很快就找到了那个似曾相似的曲子,是文化路46的一首单曲。为了实锤这个所谓的原创歌曲抄袭,Alice很快就下载到了这两首歌曲的谱子,并且调查了歌曲抄袭判定的规范。每个歌曲的谱子由个连续的音符组成,每个音符由0-55原创 2021-05-12 00:49:05 · 179 阅读 · 0 评论 -
就决定是你了
Problem: 就决定是你了因为对精灵宝可梦的喜欢,管管从小就立志要成为宝可梦大师.不失所望,长大后,管管终于成为了一名人工智能宝可梦训练师.由于今天他要外出收服新的野生宝可梦,因此他有一个特殊的任务要交给你.在人工智能训练时,有时需要用到单词的One-Hot形式,对于One-Hot序列xx可以表示为即每个单词都用长度为NN的01序列表示,其中有且仅有一个1. 每个单词的One-Hot都是独一无二的.比如N=4N=4时 宝可梦三个词可以分别表示为 宝:[1,0,0,0][1,0,0,0],可:[0原创 2021-05-12 00:41:00 · 85 阅读 · 0 评论 -
1024科学计数法
1024 科学计数法 (20 分)科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。输入格式:每个输入包含 1 个测试用例,即一个以科学计数法表示的实数 A。该数字的存储长度不超过 9999 字节,且其指数的绝对值不超过原创 2021-04-23 00:17:26 · 319 阅读 · 0 评论 -
1032 挖掘机技术哪家强
1032 挖掘机技术哪家强 (20 分)为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第 1 行给出不超过 10^5的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式:在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。输入样例:63 65...原创 2021-03-25 09:43:34 · 78 阅读 · 0 评论 -
贪心, 不需要理由 以力扣179.最大数为例
.原创 2021-06-27 21:20:23 · 117 阅读 · 0 评论 -
力扣135题:分糖果 两次贪心
贪心:每次最优已达到整体最优, 那么如果局部最优有两个维度, 是否可以用两次贪心来解决问题, 两次最优已达到整体最优。题目:老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?输入:[1,0,2]输出:5解释:你可以分别给这三个孩子分发 2、1、2 颗糖果。输入原创 2021-06-27 11:11:33 · 169 阅读 · 0 评论 -
力扣134: 加油站 相对性类题目的变与不变
题目描述:在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。实例1:输入:gas = [1,2,3,4,5] cost = [3,4,5,原创 2021-06-26 15:14:57 · 83 阅读 · 0 评论 -
二项分布及常见应用场景
在计算二项分布的时候, 我们第一反应往往是算数公式法, 但是遇到超级大的阶乘就容易超出整数的限制,于是我们可以通过二项分布本身具有传递性的性质来用动态规划求解.当然也可以优化组合数学的算法来达到更快的效果.下面我们总点来看二项分布组合函数如何快速算出结果,先看题目:组合算数公式如下:递推公式如下:题目:力扣62题官方的思路:具体证明要使用到模等数学工具...原创 2021-06-24 23:16:19 · 2097 阅读 · 1 评论 -
15. 三数之和 关于数组多重遍历的一些想法
题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。二重遍历的常用化简套路:双指针,用大小关系找出必然的移动规律,通过该规律化简算法。经常 遍历左指针,而右指针作为上限在左指针右移的过程中变化,从而达到O(n)的效果。双指针常用错指南:while或者for循环出来时两个指针是重和的,出来后如果要处理数据会出现重和的可能。多重数组遍历的常见易错点原创 2021-06-11 21:26:01 · 245 阅读 · 0 评论 -
正则匹配: 动态规划的运用和常用套路
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。思路: 使用动态规划难点: 写状态方程做法:初始变量, 字符串s, 正则表达式p(字符串), s的长度m,p的长度n构造二维数组res[m+1][n+1]。注意: 二维数组大小一定要加一,不然等会在写状态方程的时候数组就会越界。说明: res[i][j]中: 比较的是s的第i个原创 2021-06-09 11:21:17 · 102 阅读 · 0 评论 -
60排列序列:大白话说: 分组与除法和取模
给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。示例 1:输入:n = 3, k = 3输出:“213”示例 2:输入:n = 4, k = 9输出:“2314”示例 3:输入:n = 3, k = 1输出:“123”提示:1 <= n <= 91 <= k &l原创 2021-05-30 11:51:27 · 241 阅读 · 0 评论 -
Pow(x,n)
实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25提示:-100.0 < x < 100.0-231 <= n <= 231-1-104 <= xn <原创 2021-05-29 17:39:24 · 78 阅读 · 0 评论 -
leetcode43字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能使用任何标准库的大数类型(比如 Big原创 2021-05-29 15:24:50 · 106 阅读 · 0 评论 -
29两数相除
两数相除给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3.33333…) = trunc.原创 2021-05-28 19:03:26 · 66 阅读 · 0 评论 -
重复的最长子字符串
无重复的最长子字符串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke原创 2021-05-26 22:25:59 · 85 阅读 · 0 评论 -
LeetCode第8题: 字符串转化整数
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,“123” -原创 2021-05-13 11:20:32 · 98 阅读 · 0 评论 -
LeetCode第7题
题目:给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示:-231 <= x <= 231 - 1关键公式: res = r原创 2021-05-12 00:32:41 · 81 阅读 · 0 评论