
每日练习
每日习题
4nc414g0n
这个作者很懒,什么都没留下…
展开
-
有效三角形的个数 (双指针(逆向扫描)+二分)
有效三角形的个数 这里是引用原创 2022-04-20 13:48:34 · 327 阅读 · 0 评论 -
走迷宫(BFS)
走迷宫 题目链接 题目描述: NowCoder最喜欢游乐场的迷宫游戏,他和小伙伴们比赛谁先走出迷宫。 现在把迷宫的地图给你,你能帮他算出最快走出迷宫需要多少步吗? 输入包含多组数据。 每组数据包含一个10*10,由“#”和“.”组成的迷宫。其中“#”代表墙;“.”代表通路。 入口在第一行第二列;出口在最后一行第九列。 从任意一个“.”点都能一步走到上下左右四个方向的“.”点。 输入: #.######## #…# #…# #…# #…# #…# #…# #…# #…# ########.# 输出: 16原创 2022-04-15 23:04:40 · 2293 阅读 · 0 评论 -
只出现一次的数字 III(位操作)
只出现一次的数字 III 题目链接 题目描述: 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。 进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现? 方法1:哈希 思路: 建立一个数字用来映射次数 遍历拿出次数次数为1的 方法2:位操作 思路: 用0把数组里所有的数字亦或一遍得到ret 取得ret的二进制位从右到左第一个1的位置pos(表示两个只出现一次的数在这个位不一样,分别原创 2021-11-18 18:55:46 · 219 阅读 · 0 评论 -
只出现一次的数字 II(哈希、位操作、逻辑电路、有限状态自动机)
只出现一次的数字 II 题目链接 题目描述: 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素 方法1:哈希 思路: 建立一个数字用来映射次数 遍历拿出次数次数为1的 方法2:位操作 思路: 以[2,2,3,2]为例: 由于其他数都是3个,把每个数的每个位二进制的之和填入32个元素的数组 遍历%3,得到的就是那个数 代码如下: class Solution { public: int singleNumbe原创 2022-04-15 16:05:13 · 79 阅读 · 0 评论 -
电话号码的字母组合(dfs回溯、队列)
题目链接:电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 ...原创 2021-11-18 19:46:09 · 229 阅读 · 0 评论 -
最长公共子序列(一)(动规)
最长公共子序列(一) 题目链接 题目描述: 给定两个字符串 s1 和 s2,长度为m和n 。求两个字符串最长公共子序列的长度。 所谓子序列,指一个字符串删掉部分字符(也可以不删)形成的字符串。例如:字符串 “arcaea” 的子序列有 “ara” “rcaa” 等。但 “car” “aaae” 则不是它的子序列。 所谓 s1 和 s2 的最长公共子序列,即一个最长的字符串,它既是 s1 的子序列,也是 s2 的子序列。 数据范围 : 0\leq m,n\leq 10000≤m,n≤1000 。保证字符原创 2022-04-15 16:01:38 · 249 阅读 · 0 评论 -
发邮件(错排问题dp)
发邮件(错排问题) 题目链接 题目描述: NowCoder每天要给很多人发邮件。有一天他发现发错了邮件,把发给A的邮件发给了B,把发给B的邮件发给了A。于是他就思考,要给n个人发邮件,在每个人仅收到1封邮件的情况下,有多少种情况是所有人都收到了错误的邮件? 即没有人收到属于自己的邮件 输入: 2 3 输出: 1 2 思路: DFS方法超时 int N=0; void dfs(int,int); int book[100]={0}; int main() { int n; scanf("%原创 2022-04-11 23:28:17 · 379 阅读 · 0 评论 -
蘑菇阵(动规)
蘑菇阵 题目链接 题目描述: 现在有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少 输入: 第一行N,M,K(1 ≤ N,M ≤ 20, k ≤ 100),N,M为草地大小,接下来K行,每行两个整数x,y,代表(原创 2022-04-15 15:59:33 · 109 阅读 · 0 评论 -
最长上升子序列(二)(贪心+二分)
每日一题 题目字符串计数n最长上升子序列(二) 字符串计数 题目链接 题目描述: 求字典序在 s1 和 s2 之间的,长度在 len1 到 len2 的字符串的个数,结果 mod 1000007。数据范围:s1(长度小于50),s2(长度小于50),len1(小于50),len2(大于len1,小于50) 注意:本题有多组输入 输入: 每组数据包涵s1(长度小于50),s2(长度小于50),len1(小于50),len2(大于len1,小于50) ab ce 1 2 输出: 56 思路: 由于由题意得原创 2022-04-15 15:57:53 · 312 阅读 · 0 评论 -
字符串计数(转换为进制)
字符串计数 题目链接 题目描述: 求字典序在 s1 和 s2 之间的,长度在 len1 到 len2 的字符串的个数,结果 mod 1000007。数据范围:s1(长度小于50),s2(长度小于50),len1(小于50),len2(大于len1,小于50) 注意:本题有多组输入 输入: 每组数据包涵s1(长度小于50),s2(长度小于50),len1(小于50),len2(大于len1,小于50) ab ce 1 2 输出: 56 思路: 由于由题意得出为小写字母a~z,共26位,可以将其看作26进原创 2022-04-15 15:57:07 · 193 阅读 · 0 评论 -
逆波兰表达式
Emacs计算器 题目链接 题目描述: Emacs号称神的编辑器,它自带了一个计算器。与其他计算器不同,它是基于后缀表达式的,即运算符在操作数的后面。例如“2 3 +”等价于中缀表达式的“2 + 3”。 请你实现一个后缀表达式的计算器 输入: 3 2 3 + 5 2 2 + 3 * 5 2 2 3 + * 输出: 5 12 10 思路: 遇到数字入栈,遇到操作符从栈中取两个操作数,运算,再压入栈,最后取栈底 注意:可以使用:map<string, std::function<int(int原创 2022-04-15 15:55:46 · 115 阅读 · 0 评论