- 博客(34)
- 收藏
- 关注
原创 力扣 汉明距离
题目:https://leetcode-cn.com/problems/hamming-distance/注意:位运算比取余效率高应用异或运算代码:class Solution { public int hammingDistance(int x, int y) { int res = x ^ y; int sum = 0; while(res > 0){ if((res & 1) == 1){
2022-03-13 16:21:45
147
原创 力扣 路径总和 III
题目:https://leetcode-cn.com/problems/path-sum-iii/解题思路:本题练习递归及其优化。解法一:对于每个节点,递归的遍历其子节点。(可想而知这样会有大量重复遍历)解法二:前缀和记录下根节点到正在访问的节点的前缀和,通过前缀和差值求满足条件的个数。复杂度降到O(N)。注意:要注意传到Java函数中的变量什么时候会改变什么时候不会改变,对于基本数据类型来说,当函数退出,其值一定跟原来是一样的不会改变。代码:解法一/** * Definition fo
2022-03-13 15:08:21
435
原创 数据库力扣 查找重复的电子邮箱
题目:https://leetcode-cn.com/problems/duplicate-emails/代码:# Write your MySQL query statement belowselect email from Person group by emailhaving count(email) > 1注意:考察聚合函数+having用法。聚合函数对一组值执行计算并返回单一的值。除 COUNT以外,聚合函数忽略空值,如果COUNT函数的应用对象是一个确定列名,并且该列存在
2022-03-10 16:22:07
861
原创 力扣数据库 变更性别
题目:https://leetcode-cn.com/problems/swap-salary/代码:# Write your MySQL query statement belowupdate salary set sex = (case sex when "m" then 'f' else 'm' end)注意:考察update的使用和case when语句。update 表名 set 字段 =case when sex ="m" then 'f' else 'm' end也可以。
2022-03-10 16:10:21
570
原创 力扣数据库 组合两个表
题目:https://leetcode-cn.com/problems/combine-two-tables/代码:# Write your MySQL query statement belowselect Person.FirstName, Person.LastName, Address.City, Address.Statefrom Person left join Addresson Person.PersonId = Address.PersonId注意:用where的话左连接相
2022-03-10 15:49:02
711
原创 力扣 二叉树的层序遍历
题目:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/需要注意的点:Java的Queue相关的内容,例如,实例化时其引用一般是指向LinkedList对象,还有offer(),peek(),poll(),isEmpty()方法。代码:一个是加了个flag节点标记;一个是记录size/** * Definition for a binary tree node. * public class TreeNode
2022-03-01 14:56:37
331
原创 力扣 最大子数组和
题目:https://leetcode-cn.com/problems/maximum-subarray/思路:动态规划的思想,dp[i]表示以i为结束的数据的最大子数据和。则:dp[0] = nums[0]dp[i] = max(dp[i-1] + nums[i], nums[i])最大值即最大的dp[i]代码:class Solution { public int maxSubArray(int[] nums) { int res = nums[0];
2022-02-18 20:55:59
230
原创 力扣 合并两个有序链表
题目:https://leetcode-cn.com/problems/merge-two-sorted-lists/思路:设定一个哨兵节点 listResult ,可以在最后返回合并后的链表.代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val
2022-02-17 21:45:00
185
原创 力扣 两数之和
题目:https://leetcode-cn.com/problems/two-sum/解题思路:最笨的方法:两个for,时间复杂度较高。O(N)的方法:使用哈希映射,求是否存在target - x。一个需要注意的点:要注意数组元素不应该与其自身匹配,所以先进行匹配再将元素放入HashMap中,不要全放入再匹配。代码:class Solution { public int[] twoSum(int[] nums, int target) { int[] res = ne
2022-02-15 17:50:44
237
原创 力扣 无重复字符的最长子串
题目:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。解题思路:采用动态规划解法,dp[i]表示[0, i]这个区间,以s[i]为结尾的的最长子串的长度。那么dp[0] = 0, 只有一个字符时肯定不重复。从 i = 1 开始,遍历算dp[i], 有以下两种可能:①如果字符s[i]之前没有出现过,那么dp[i] =
2022-01-10 12:57:33
231
原创 力扣 构造 K 个回文字符串
题目:https://leetcode-cn.com/problems/construct-k-palindrome-strings/给定一个字符串s,一个整数k,问能否使用s中的所有字符构造出k个回文字符串。解题思路:如果字符串s长度小于k,则一定不能构造k个回文。因为最多是让每个字符当作一个回文串,这样也比k小。如果字符串s中奇数个字符的数量比k大,那使用s中的所有字符构造出来的回文串的数量一定比k大,因为最小的情况就是让这些奇数字符做为回文串的中心位置。除了以上两种情况,其他情况都可行。
2022-01-06 18:10:43
2515
原创 力扣 Pow(x,n)
题目:https://leetcode-cn.com/problems/powx-n/给定x和n,求x的n次方。快速幂的题目,利用递归快速求解。class Solution { public double myPow(double x, int n) { if(n > 0){ return quickMul(x, n); }else { return 1.0 / quickMul(x, n);
2022-01-06 01:13:50
117
原创 力扣 超级次方
题目:https://leetcode-cn.com/problems/super-pow/submissions/给一个整数a,一个非常大的整数b,b用数组形式给出,求a的b次方对1337取余。用到取余的分配率。把a的b次方用数学公式分解。递推求解。class Solution { public int superPow(int a, int[] b) { int m = b.length; int ans = pow(a, b[m-1], 1337);
2022-01-06 01:13:00
3240
原创 力扣刷题05 java 二维数组行数是matrix.length
旋转矩阵 https://leetcode-cn.com/problems/rotate-matrix-lcci/给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?这个题非常简单,没什么好说的。先对角线对称,在沿横轴对称。代码Javaclass Solution { public void rotate(int[][] matrix) { int N = matrix.length;
2021-02-18 19:51:48
371
1
原创 力扣04 C++的to_string();JavaString类的substring
字符串压缩 https://leetcode-cn.com/problems/compress-string-lcci/字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母。C++int cnt=10;string s=to_string(cnt); 将数字转为stringJavaString S;S.substring
2021-01-08 17:36:36
171
原创 力扣03 C++string的assign和substr;C++类和Java类的区别
一次编辑 https://leetcode-cn.com/problems/one-away-lcci/.字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。C++string s1;string s2;s1.assign(s2); 把s2赋给s1s1=s2; 这样赋值也可以s1=s2.substr(1,3); 把s2子串(从下标1开始数3个字符)给s1PS:这个题有一个案例是空串,出现了一个我无法
2021-01-07 17:20:10
282
原创 力扣02 ASCII共有128个字符;使用HashSet消除偶数个数的字符
回文排列给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。思路:回文数有什么性质呢?既然是回文,那么必须满足下两条中的一种:每种字符都是偶数个数只有一种字符是奇数个数,其他都是偶数个数C++ASCII共有128个字符,[0.127]定义一个大于128的整数数组计数即可Java 使用HashSet,非常巧妙的一种方法class Solution { public boolean canPermut
2021-01-06 16:12:02
232
原创 2021力扣刷题目标
2021年有250个工作日,我跟自己设定的最低目标也是力扣刷题250道(至少)qq群:825042955这是我建立的学习分享小队,目前只有我一个人,如果你也想一起学习交流,就来吧!!!
2021-01-05 15:33:03
153
原创 力扣01 C++string用‘+’拼接可字符可字符串
URL化 https://leetcode-cn.com/problems/string-to-url-lcci/string S;S+="%20";//拼接字符串S+='c';//拼接字符
2021-01-05 15:26:35
365
原创 异或运算
异或法则:同为0,异为1应用:虽然异或法则耳熟能详,但是往往用的时候想不起来,只需要记住:相同的两个数异或为0;0异或任何数为他本身这种规律用于消除偶数对的数,找到不同的数!!只需要枚举异或一遍!...
2020-10-17 18:49:31
344
原创 hdu 5826 积分推导
题目http://acm.hdu.edu.cn/showproblem.php?pid=5826题意在一条无限长水平直轨道上有n个相同的球,给出每个球的初速度、起始位置、方向.给出若干询问,每次输出 t 秒时第 k 小的速度是多少.对任意球的任一时刻而言,速度与加速度同方向,且它们的乘积为定值C.所发生的碰撞为完全弹性碰撞题解完全弹性碰撞:无动能损失,碰撞后两球交换速度因此不必要...
2019-09-29 17:31:19
146
原创 扩展欧拉定理 bzoj3884
https://www.lydsy.com/JudgeOnline/problem.php?id=3884题意扩展欧拉定理扩展欧拉定理只需要知道这个式子:对a与m互质性没有要求时,经常用到后两个公式降幂。思路设函数因为指数上是无限个2,肯定大于phi[p],则有看出可以用递归来写phi[p]很快会变为1,此时则为0,后面就没有了,这就是递归出口代码#include &...
2019-09-04 20:20:07
135
原创 LightOJ - 1104 Birthday Paradox
https://vjudge.net/problem/LightOJ-1104题意给你某个星球上一年的天数n,求邀请人数的最小值cnt,满足参加生日party上至少两个人同一天生日的概率至少为0.5题解n个人生日都不同的概率:那么至少有两人生日相同的概率为1-Pfor循环当P<=0.5即答案代码#include <bits/stdc++.h>using nam...
2019-07-30 10:52:08
118
原创 ZOJ 3329 One Person Game期望dp
https://vjudge.net/contest/312931#problem/D题意三个骰子,分别有k1,k2,k3个面。每次掷骰子,如果三个面分别为a,b,c则分数置0,否则加上三个骰子的分数之和。当分数大于n时结束。求游戏的期望步数。初始分数为0题解设dp[i]表示达到i分时到达目标状态的期望,pk为投掷k分的概率,p0为回到0的概率dp[n] = p0 * dp[0] +...
2019-07-29 20:00:50
122
原创 LightOJ - 1341 Aladdin and the Flying Carpet 唯一分解定理
https://vjudge.net/contest/307652#problem/C题意t组数据(t<=4000),每组两个数a,b,1 ≤ b ≤ a ≤ 1e12。a代表矩形的面积,b代表矩形的可能的最短的一条边。求矩形的长宽有多少种可能的情形,矩形不能是正方形。题解首先不考虑b的限制,这题就是求a的因子数除以2。题目要求b是最小可能边长,当b>=sqrt(a)时,没有符...
2019-07-15 19:29:38
116
原创 LightOJ - 1336 Sigma Function
https://vjudge.net/contest/307652#problem/D题意求[1,n]中因子和为偶数的数的个数。100组数据,1<=n<=1e12。题目给出了因子和的公式:题解其实n的因子和公式无非是几个等比数列求和的乘积,看这个式子就很明白了,每个括号拿出一个,就可以组合出所有情况。要使因子和为偶数,只要让其中一个括号是偶数就可以,这样不好下手,反过来...
2019-07-15 16:24:14
155
原创 LightOJ - 1236 Pairs Forming LCM
https://vjudge.net/contest/307652#problem/H题意t组数据(t<=200),1<=n<=1e14,求n以内的lcm(i,j)==n的对数,i<=j题解根据唯一分解定理,有一下两个关于gcd和lcm的式子,这也是求gcd和lcm的一种方法:a=p1 ^ a1 * p2 ^ a2 *…*pn ^ anb=p1 ^ b1 * ...
2019-07-15 14:04:47
116
原创 LightOJ - 1282 Leading and Trailing
https://vjudge.net/contest/307652#problem/E题意给n和k,求n的k次方的前三位和末三位题解后三位用快速幂对1000取模可以求。前三位,转化对对数——令a=k*log10(n),a为double类型,其整数部分用来确定位数,小数部分确定数值。求小数部分用到cmath中的fmod函数,fmod(x,y)返回x/y的余数输出要用%03d不然过不了代...
2019-07-13 19:07:54
116
原创 期望dp概率dp练习
1.Discovering Goldhttps://vjudge.net/contest/306858#problem/B题意有n个格子,每个格子上都有一定的黄金值;还有一个色子(1-6)。起始位置站在格子1上面,若每次投掷色子得到数x,x+i<=n(i表示现处位置的格子编号),则可以到达(x+i)格子上;反之,再进行一次投掷。问:到达标号为n的格子上面,得到黄金的期望值是多少?思路...
2019-06-19 19:36:53
330
原创 容斥原理练习题
1. bzoj 2393&nefu 1795 Cirno的完美算数教室http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1795DescriptionCirno发现了一种baka数,这种数只含有2和9两种数字现在Cirno想知道一个区间中有多少个数能被baka数整除但是Cirno这么天才的妖精才不屑去数啦...
2019-06-07 19:43:46
1830
原创 阶梯博弈(bzoj1115,nefu 1783)石子游戏Kam
Description有N堆石子,除了第一堆外,每堆石子个数都不少于前一堆的石子个数。两人轮流操作每次操作可以从一堆石子中移走任意多石子,但是要保证操作后仍然满足初始时的条件谁没有石子可移时输掉游戏。问先手是否必胜。Input第一行u表示数据组数。对于每组数据,第一行N表示石子堆数,第二行N个数ai表示第i堆石子的个数(a1<=a2<=……<=an)。 1<=u<...
2019-04-02 20:40:01
244
1
原创 nefu 1285 趣味解题
学会从n个数中取x位的各种组合的实现方法题目:输入一个正整数T(T<=100),表示有T组数据,对于每组数据首先输入一个 n (7<=n<=13),表示有 n 个题目,接下来输入三行,第一行输入 n 个数a_i,第二行输入 n 个数b_i,第三行输入 n 个数c_i, 其中 a_i, b_i, c_i 表示abc三个同学做出第i个题的概率,最后输入一个 x 表示教练想要知道...
2018-10-02 19:43:29
190
原创 素数筛+前缀和优化(包含威尔逊定理应用)
题目: 求 输入t组数据和m,n,输出 Fn%1000000007.题解: 根据威尔逊定理,当p为素数,p|(p-1)!+1..由此可知,当2*i+3为素数时,该项值为1,否则为0. 素数筛枚举m到n会超时,所以要用到一个前缀和 代码:#include <iostream>#include <stdio.h>#include <stdlib....
2018-09-10 19:27:58
252
原创 NEFU1493 快速幂取余+除法取余(逆元)
NEFU1493 快速幂取余+除法取余(逆元)题目:Gugu 有两个长度无限长的序列A,B A0=a^0/0!,A1=a^1/1!,A2=a^2/2!,A3=a^3/3!…. B0=0, B1=b^1/1!,B2=0,B3=b^3/3!,B4=0, B5=b^5/5! … Douge 看到这道这两个序列很觉得很麻烦,所以他想到一个好点子,他想把这两个序列结合一个序列C ...
2018-09-03 14:12:38
542
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人