diff --git a/.gitignore b/.gitignore index 8c8edc19b20e6ca23146ac02b2c072cc47f05006..5ccec7eb63d04ce3a750679aeba75c7c7142ba3a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,9 @@ __pycache__ *.zip help.py test.cpp -a.out \ No newline at end of file +a.out +leetcode_template.md +auto_gen_leetcode_tem.py +leetcode_helper.py +lanqiao_helper.py +lanqiao_template.md \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/7\346\256\265\347\240\201/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/7\346\256\265\347\240\201/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..5167de7f708ec4ab09c7c1979df984bd9046f06b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/7\346\256\265\347\240\201/solution.md" @@ -0,0 +1,50 @@ +# 7段码 +#### 题目描述 +小蓝要用七段码数码管来表示一种特殊的文字。 +![七段码](https://img-blog.csdnimg.cn/2020110916441977.png#pic_left) +上图给出了七段码数码管的一个图示,数码管中一共有 7 段可以发光的二极管,分别标记为 a, b, c, d, e, f, g。 + +小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符的表达时,要求所有发光的二极管是连成一片的。 + +* 例如:b 发光,其他二极管不发光可以用来表达一种字符。 + +* 例如:c 发光,其他二极管不发光可以用来表达一种字符。 + +这种方案与上一行的方案可以用来表示不同的字符,尽管看上去比较相似。 + +* 例如:a, b, c, d, e 发光,f, g 不发光可以用来表达一种字符。 + +* 例如:b, f 发光,其他二极管不发光则不能用来表达一种字符,因为发光的二极管没有连成一片。 + +请问,小蓝可以用七段码数码管表达多少种不同的字符? + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/9\346\225\260\347\256\227\345\274\217/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/9\346\225\260\347\256\227\345\274\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e4ee15db7c921a74683a9e74f46f98ff1605185c --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/9\346\225\260\347\256\227\345\274\217/solution.md" @@ -0,0 +1,45 @@ +# 9数算式 +观察如下的算式: +``` +9213 x 85674 = 789314562 +``` +左边的乘数和被乘数正好用到了1~9的所有数字,每个1次。 +而乘积恰好也是用到了1~9的所有数字,并且每个1次。 + +请你借助计算机的强大计算能力,找出满足如上要求的9数算式一共有多少个? + +注意: + +1. 总数目包含题目给出的那个示例。 +2. 乘数和被乘数交换后作为同一方案来看待。 + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/BST \346\217\222\345\205\245\350\212\202\347\202\271\351\227\256\351\242\230/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/BST \346\217\222\345\205\245\350\212\202\347\202\271\351\227\256\351\242\230/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d6d3cea43e223c01a1f42ecef08897d387274d5e --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/BST \346\217\222\345\205\245\350\212\202\347\202\271\351\227\256\351\242\230/solution.md" @@ -0,0 +1,68 @@ +# BST 插入节点问题 +#### 问题描述 +给定一棵包含 N 个节点的二叉树,节点编号是 1 ∼ N。其中 i 号节点具有权值 W i ,并且这些节点的权值恰好形成了一棵排序二叉树 (BST)。 +现在给定一个节点编号 K,小明想知道,在这 N 个权值以外,有多少个整数 X (即 X 不等于任何 W i ) 满足:给编号为 K 的节点增加一个权值为 X 的子节点,仍可以得到一棵 BST。 +例如在下图中,括号外的数字表示编号、括号内的数字表示权值。即编号1 ∼ 4 的节点权值依次是 0、10、20、30。 + +![](https://img-blog.csdnimg.cn/20201010210318917.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01pbGtMZW9uZw==,size_16,color_FFFFFF,t_70#pic_center) + +如果 K = 1,那么答案为 0。因为 1 号节点已经有左右子节点,不能再增加子节点了。 +如果 K = 2,那么答案为无穷多。因为任何一个负数都可以作为 2 的左子节点。 +如果 K = 3,那么答案为 9。因为 X = 11,12,··· ,19 都可以作为 3 的左子节点。 + +#### 输入格式 +第一行包含 2 个整数 N 和 K。 +以下 N 行每行包含 2 个整数,其中第 i 行是编号为 i 的节点的父节点编号P i 和权值 W i 。注意 P i = 0 表示 i 是根节点。 +输入保证是一棵 BST。 + +#### 输出格式 +一个整数代表答案。如果答案是无穷多,输出 −1。 + +#### 样例输入 +``` +4 3 +0 10 +1 0 +1 20 +3 30 +``` +#### 样例输出 +``` +9 +``` +#### 评测用例规模与约定 +对于 60% 的评测用例,1 ≤ K ≤ N ≤ 100,0 ≤ W i ≤ 200,且 W i 各不相同。 +对于所有评测用例,1 ≤ K ≤ N ≤ 10000,0 ≤ W i ≤ 100000000,且 W i 各不相同。 + + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/REPEAT \347\250\213\345\272\217/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/REPEAT \347\250\213\345\272\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..5d7844cc99ecadeaa3f8b0a03d426fbc9c814a03 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/REPEAT \347\250\213\345\272\217/solution.md" @@ -0,0 +1,1052 @@ +# REPEAT 程序 +附件 prog.txt 中是一个用某种语言写的程序。附件在本文的末尾。 + +其中 REPEAT k 表示一个次数为 k 的循环。循环控制的范围由缩进表达,从次行开始连续的缩进比该行多的(前面的空白更长的)为循环包含的内容。 + +![](https://img-blog.csdnimg.cn/20210320200704647.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MDEzMjQ3,size_16,color_FFFFFF,t_70) + +该片段中从 A = A + 4 所在的行到 A = A + 8 所在的行都在第一行的循环两次中。 + +REPEAT 6: 所在的行到 A = A + 7 所在的行都在 REPEAT 5: 循环中。 + +A = A + 5 实际总共的循环次数是 2 × 5 × 6 = 60 次。 + +请问该程序执行完毕之后,A 的值是多少? + + + +题目给出的 prog.txt 文件: +``` +A = 0 +REPEAT 2: + A = A + 4 + REPEAT 5: + REPEAT 6: + A = A + 5 + A = A + 7 + REPEAT 6: + A = A + 7 + REPEAT 4: + A = A + 2 + A = A + 7 + A = A + 2 + REPEAT 7: + REPEAT 4: + A = A + 8 + A = A + 7 + A = A + 4 + A = A + 5 + A = A + 8 + REPEAT 8: + A = A + 5 + REPEAT 1: + A = A + 2 + REPEAT 7: + A = A + 5 + A = A + 5 + REPEAT 2: + REPEAT 3: + A = A + 1 + A = A + 1 + REPEAT 5: + A = A + 1 + REPEAT 9: + REPEAT 6: + A = A + 5 + A = A + 1 + REPEAT 6: + A = A + 2 + A = A + 8 + A = A + 3 + REPEAT 2: + A = A + 5 + REPEAT 3: + A = A + 9 + REPEAT 1: + A = A + 4 + REPEAT 2: + A = A + 9 + REPEAT 1: + A = A + 6 + A = A + 6 + A = A + 4 + REPEAT 3: + A = A + 7 + A = A + 1 + REPEAT 2: + A = A + 3 + REPEAT 5: + A = A + 2 + A = A + 5 + A = A + 2 + A = A + 4 + A = A + 3 +REPEAT 4: + A = A + 4 + A = A + 3 + A = A + 7 + REPEAT 5: + REPEAT 4: + A = A + 5 + A = A + 7 + REPEAT 5: + A = A + 3 + REPEAT 3: + A = A + 3 + A = A + 1 + A = A + 8 + A = A + 2 + REPEAT 9: + A = A + 5 + REPEAT 1: + A = A + 5 + A = A + 2 + A = A + 8 +A = A + 6 +REPEAT 3: + REPEAT 4: + A = A + 9 + REPEAT 5: + A = A + 2 + A = A + 1 + REPEAT 9: + A = A + 9 + A = A + 2 + REPEAT 1: + A = A + 6 + A = A + 8 + REPEAT 2: + A = A + 9 + A = A + 4 + A = A + 7 + REPEAT 2: + REPEAT 7: + A = A + 3 + A = A + 5 + REPEAT 3: + A = A + 5 + A = A + 3 + A = A + 6 + A = A + 4 + REPEAT 9: + A = A + 2 + A = A + 8 + A = A + 2 + A = A + 3 + REPEAT 2: + REPEAT 8: + A = A + 5 + A = A + 1 + A = A + 6 + A = A + 1 + A = A + 2 + REPEAT 6: + REPEAT 1: + A = A + 3 + REPEAT 1: + A = A + 2 + REPEAT 4: + A = A + 7 + A = A + 1 + A = A + 8 + REPEAT 6: + A = A + 5 + REPEAT 6: + A = A + 3 + REPEAT 2: + A = A + 2 + A = A + 9 + A = A + 7 + REPEAT 9: + A = A + 8 + REPEAT 9: + A = A + 8 + A = A + 9 + A = A + 3 + A = A + 2 + REPEAT 6: + A = A + 3 + REPEAT 9: + A = A + 1 + A = A + 9 + A = A + 5 + REPEAT 2: + A = A + 4 + A = A + 9 + A = A + 8 + REPEAT 5: + A = A + 6 + A = A + 9 + A = A + 1 + REPEAT 1: + A = A + 4 + A = A + 2 + REPEAT 9: + REPEAT 3: + A = A + 4 + REPEAT 7: + A = A + 8 + A = A + 3 + REPEAT 5: + A = A + 9 + REPEAT 8: + A = A + 9 + A = A + 8 + REPEAT 4: + A = A + 7 + A = A + 7 + A = A + 3 +A = A + 5 +REPEAT 6: + A = A + 7 +REPEAT 7: + A = A + 2 + A = A + 2 +A = A + 1 +REPEAT 8: + REPEAT 1: + REPEAT 4: + A = A + 6 + A = A + 6 + A = A + 2 + REPEAT 5: + A = A + 4 + A = A + 8 + A = A + 4 + REPEAT 1: + A = A + 5 + REPEAT 7: + A = A + 8 + REPEAT 6: + A = A + 4 + A = A + 4 + A = A + 8 + REPEAT 4: + A = A + 2 + REPEAT 2: + A = A + 4 + REPEAT 2: + A = A + 3 + REPEAT 1: + A = A + 2 + A = A + 8 + REPEAT 2: + A = A + 7 + REPEAT 8: + A = A + 6 + A = A + 1 + A = A + 7 + REPEAT 8: + A = A + 2 + REPEAT 8: + REPEAT 6: + A = A + 1 + A = A + 6 + REPEAT 2: + A = A + 4 + A = A + 1 + A = A + 7 + A = A + 4 +REPEAT 4: + REPEAT 9: + A = A + 2 + REPEAT 1: + A = A + 2 + A = A + 5 +REPEAT 8: + REPEAT 6: + A = A + 3 + REPEAT 4: + A = A + 1 + A = A + 6 + A = A + 1 + REPEAT 7: + A = A + 7 + REPEAT 7: + A = A + 3 + A = A + 9 + A = A + 1 + A = A + 9 + REPEAT 3: + A = A + 5 + A = A + 5 + A = A + 6 + A = A + 2 + REPEAT 1: + A = A + 4 + REPEAT 2: + A = A + 7 + REPEAT 1: + A = A + 7 + REPEAT 4: + A = A + 7 + A = A + 2 + REPEAT 5: + A = A + 9 + A = A + 1 + A = A + 9 + A = A + 5 + A = A + 9 + REPEAT 5: + A = A + 5 + REPEAT 1: + A = A + 6 + REPEAT 2: + A = A + 3 + A = A + 2 + A = A + 6 + A = A + 8 + A = A + 8 + A = A + 7 + A = A + 5 + A = A + 5 +REPEAT 2: + A = A + 1 + A = A + 7 +A = A + 3 +REPEAT 2: + A = A + 7 +A = A + 1 +A = A + 4 +REPEAT 1: + REPEAT 7: + REPEAT 2: + A = A + 3 + A = A + 5 + A = A + 2 + A = A + 6 + A = A + 1 +A = A + 2 +A = A + 4 +A = A + 9 +REPEAT 1: + A = A + 8 +REPEAT 8: + REPEAT 4: + REPEAT 8: + A = A + 4 + REPEAT 3: + A = A + 1 + A = A + 8 + REPEAT 7: + A = A + 8 + REPEAT 7: + A = A + 7 + A = A + 7 + REPEAT 7: + A = A + 6 + REPEAT 5: + A = A + 9 + A = A + 3 + REPEAT 4: + A = A + 5 + A = A + 5 + A = A + 4 + REPEAT 9: + REPEAT 3: + A = A + 4 + A = A + 3 + A = A + 6 + REPEAT 1: + A = A + 3 + A = A + 3 + A = A + 6 + REPEAT 6: + A = A + 7 + A = A + 7 + A = A + 5 + A = A + 5 + A = A + 1 + A = A + 2 + A = A + 6 + A = A + 6 + REPEAT 9: + A = A + 6 + REPEAT 1: + REPEAT 2: + A = A + 4 + A = A + 7 + REPEAT 3: + A = A + 6 + REPEAT 5: + A = A + 3 + A = A + 6 + REPEAT 9: + A = A + 3 + A = A + 6 + REPEAT 5: + A = A + 8 + A = A + 8 + REPEAT 3: + A = A + 7 + A = A + 9 + A = A + 8 + A = A + 3 + A = A + 3 + A = A + 9 +REPEAT 6: + A = A + 9 +A = A + 1 +REPEAT 4: + REPEAT 1: + A = A + 7 + REPEAT 9: + A = A + 2 + A = A + 9 + A = A + 1 +A = A + 2 +A = A + 8 +A = A + 7 +A = A + 9 +A = A + 6 +REPEAT 4: + REPEAT 2: + A = A + 3 + REPEAT 3: + A = A + 4 + A = A + 4 +REPEAT 6: + A = A + 6 +A = A + 1 +A = A + 5 +A = A + 8 +REPEAT 2: + A = A + 6 + REPEAT 1: + REPEAT 2: + A = A + 2 + REPEAT 3: + A = A + 1 + REPEAT 1: + A = A + 8 + A = A + 7 + A = A + 4 + A = A + 2 + A = A + 8 + A = A + 4 + REPEAT 5: + REPEAT 6: + A = A + 8 + REPEAT 9: + A = A + 5 + A = A + 5 + REPEAT 5: + A = A + 5 + REPEAT 3: + REPEAT 5: + A = A + 4 + REPEAT 4: + A = A + 6 + A = A + 3 + REPEAT 7: + A = A + 3 + A = A + 3 + A = A + 1 + A = A + 7 + A = A + 7 + A = A + 6 + A = A + 5 + A = A + 5 + A = A + 6 + REPEAT 1: + A = A + 9 + A = A + 3 + REPEAT 1: + REPEAT 1: + A = A + 1 + REPEAT 8: + A = A + 5 + REPEAT 8: + A = A + 6 + REPEAT 4: + A = A + 9 + A = A + 4 + REPEAT 2: + A = A + 3 + A = A + 7 + REPEAT 5: + A = A + 7 + A = A + 5 + A = A + 8 + A = A + 7 + A = A + 8 + A = A + 5 + REPEAT 2: + A = A + 5 + A = A + 7 + A = A + 8 +A = A + 5 +A = A + 9 +REPEAT 2: + REPEAT 6: + A = A + 9 + A = A + 1 + A = A + 8 + A = A + 7 + A = A + 1 + A = A + 5 + REPEAT 3: + A = A + 3 + A = A + 9 + A = A + 7 + REPEAT 3: + A = A + 9 + A = A + 1 + REPEAT 6: + A = A + 1 + REPEAT 9: + REPEAT 7: + A = A + 3 + REPEAT 5: + A = A + 5 + A = A + 8 + A = A + 8 + A = A + 1 + A = A + 2 + REPEAT 4: + A = A + 6 + REPEAT 3: + A = A + 3 + A = A + 7 + REPEAT 8: + REPEAT 1: + A = A + 7 + A = A + 8 + A = A + 3 + A = A + 1 +A = A + 2 +A = A + 4 +A = A + 7 +REPEAT 1: + REPEAT 1: + REPEAT 1: + A = A + 4 + A = A + 6 + REPEAT 1: + A = A + 3 + A = A + 9 + A = A + 6 + REPEAT 9: + A = A + 1 + A = A + 6 + REPEAT 5: + A = A + 3 + A = A + 9 + A = A + 5 + A = A + 5 + A = A + 7 + A = A + 2 + REPEAT 2: + A = A + 7 + A = A + 7 + REPEAT 7: + REPEAT 4: + A = A + 6 + A = A + 8 + REPEAT 6: + A = A + 6 + REPEAT 2: + A = A + 1 + A = A + 7 + A = A + 6 + A = A + 7 + REPEAT 4: + REPEAT 7: + A = A + 1 + REPEAT 2: + A = A + 2 + A = A + 5 + A = A + 8 + A = A + 2 +A = A + 1 +A = A + 4 +REPEAT 8: + A = A + 5 +A = A + 6 +REPEAT 7: + REPEAT 6: + REPEAT 9: + A = A + 7 + A = A + 8 + REPEAT 4: + A = A + 6 + A = A + 4 + A = A + 3 + A = A + 6 + REPEAT 9: + A = A + 3 + REPEAT 9: + A = A + 2 + A = A + 7 + A = A + 5 + A = A + 2 +REPEAT 7: + REPEAT 8: + REPEAT 6: + A = A + 4 + A = A + 9 + A = A + 5 + A = A + 3 + A = A + 9 + REPEAT 4: + REPEAT 1: + A = A + 6 + A = A + 8 + REPEAT 1: + A = A + 6 + A = A + 4 + A = A + 6 + REPEAT 3: + A = A + 7 + REPEAT 3: + A = A + 4 + A = A + 4 + A = A + 2 + A = A + 3 + A = A + 7 + REPEAT 5: + A = A + 6 + A = A + 5 + REPEAT 1: + REPEAT 8: + A = A + 5 + REPEAT 3: + A = A + 6 + REPEAT 9: + A = A + 4 + A = A + 3 + REPEAT 6: + REPEAT 2: + A = A + 1 + A = A + 5 + A = A + 2 +A = A + 2 +A = A + 7 +REPEAT 4: + A = A + 7 +A = A + 9 +A = A + 2 +REPEAT 8: + A = A + 9 + REPEAT 9: + REPEAT 2: + A = A + 3 + A = A + 2 + A = A + 1 + A = A + 5 + REPEAT 9: + A = A + 1 + A = A + 3 + A = A + 9 + REPEAT 7: + A = A + 2 + REPEAT 5: + A = A + 9 + A = A + 3 + REPEAT 2: + A = A + 4 + REPEAT 8: + A = A + 9 + REPEAT 5: + A = A + 5 + A = A + 4 + A = A + 2 + A = A + 4 + REPEAT 6: + A = A + 2 + REPEAT 5: + A = A + 7 + A = A + 7 + A = A + 8 + A = A + 3 + REPEAT 8: + A = A + 2 + A = A + 5 + REPEAT 1: + A = A + 8 + A = A + 5 + A = A + 1 + A = A + 1 + A = A + 5 + REPEAT 2: + A = A + 6 + REPEAT 6: + A = A + 9 + A = A + 2 + A = A + 5 + REPEAT 4: + A = A + 7 + A = A + 1 + REPEAT 6: + A = A + 8 + A = A + 4 + REPEAT 3: + REPEAT 2: + A = A + 1 + A = A + 5 + REPEAT 2: + A = A + 7 + REPEAT 9: + A = A + 6 + A = A + 8 + A = A + 9 + A = A + 5 + REPEAT 9: + REPEAT 3: + A = A + 7 + A = A + 7 + A = A + 9 + A = A + 7 + REPEAT 5: + A = A + 7 + A = A + 2 + A = A + 1 + A = A + 8 + A = A + 3 + A = A + 5 +A = A + 1 +REPEAT 8: + A = A + 4 +A = A + 2 +A = A + 2 +A = A + 8 +REPEAT 4: + REPEAT 4: + A = A + 8 + REPEAT 7: + A = A + 5 + A = A + 2 + REPEAT 2: + A = A + 6 + REPEAT 4: + A = A + 8 + A = A + 6 + A = A + 1 + A = A + 3 +A = A + 2 +A = A + 7 +A = A + 4 +REPEAT 8: + A = A + 2 + A = A + 4 +REPEAT 5: + REPEAT 3: + REPEAT 6: + A = A + 8 + A = A + 1 + A = A + 6 + A = A + 5 + A = A + 9 +REPEAT 8: + A = A + 7 +REPEAT 6: + A = A + 4 +A = A + 5 +REPEAT 3: + A = A + 1 + REPEAT 1: + REPEAT 5: + A = A + 6 + A = A + 2 + REPEAT 9: + REPEAT 5: + A = A + 9 + A = A + 3 + REPEAT 9: + A = A + 9 + A = A + 8 + REPEAT 8: + REPEAT 5: + A = A + 9 + A = A + 4 + REPEAT 9: + A = A + 3 + A = A + 4 + A = A + 5 +REPEAT 9: + REPEAT 7: + A = A + 5 + REPEAT 3: + A = A + 7 + REPEAT 9: + REPEAT 6: + A = A + 4 + A = A + 6 + REPEAT 5: + REPEAT 6: + A = A + 5 + A = A + 3 + A = A + 3 + A = A + 3 + A = A + 5 + REPEAT 7: + A = A + 5 + REPEAT 2: + A = A + 5 + A = A + 6 + REPEAT 2: + A = A + 2 + A = A + 5 + A = A + 3 +A = A + 5 +A = A + 5 +REPEAT 4: + A = A + 2 + A = A + 1 + REPEAT 9: + A = A + 9 + A = A + 5 + A = A + 6 + A = A + 2 + A = A + 2 + A = A + 5 + REPEAT 9: + A = A + 5 + A = A + 4 + REPEAT 4: + REPEAT 4: + A = A + 1 + A = A + 2 + REPEAT 6: + A = A + 9 + A = A + 3 + REPEAT 2: + A = A + 5 + A = A + 1 + A = A + 1 + A = A + 3 + A = A + 8 + REPEAT 7: + A = A + 4 + REPEAT 6: + A = A + 9 + REPEAT 5: + A = A + 9 + A = A + 8 + A = A + 3 + A = A + 9 + A = A + 4 + A = A + 6 +REPEAT 7: + A = A + 9 +REPEAT 9: + A = A + 4 + A = A + 9 + A = A + 1 + A = A + 3 + REPEAT 5: + REPEAT 1: + A = A + 4 + A = A + 4 + REPEAT 8: + A = A + 9 + A = A + 6 + A = A + 2 + REPEAT 3: + A = A + 4 + A = A + 4 + REPEAT 3: + A = A + 5 + A = A + 2 + A = A + 8 + A = A + 3 + A = A + 6 + A = A + 4 + A = A + 9 + A = A + 1 + A = A + 9 + A = A + 5 + A = A + 3 + REPEAT 3: + A = A + 2 + A = A + 5 + A = A + 8 + A = A + 2 + A = A + 5 + REPEAT 8: + REPEAT 2: + A = A + 6 + A = A + 7 + A = A + 6 + A = A + 9 + A = A + 2 +REPEAT 2: + A = A + 3 + REPEAT 8: + A = A + 7 + A = A + 2 + A = A + 1 + A = A + 4 + A = A + 1 + A = A + 5 + A = A + 2 + A = A + 1 + REPEAT 1: + A = A + 1 + REPEAT 6: + A = A + 4 + A = A + 3 + A = A + 3 + REPEAT 5: + A = A + 3 + REPEAT 6: + REPEAT 1: + A = A + 5 + A = A + 7 + A = A + 7 + A = A + 7 + REPEAT 5: + A = A + 9 + A = A + 7 + REPEAT 5: + A = A + 9 + A = A + 1 + A = A + 9 + A = A + 8 + REPEAT 1: + A = A + 2 + REPEAT 5: + A = A + 8 + REPEAT 3: + A = A + 2 + A = A + 9 + A = A + 6 + A = A + 3 + REPEAT 5: + REPEAT 6: + A = A + 5 + A = A + 5 + REPEAT 4: + A = A + 5 + A = A + 4 + REPEAT 8: + A = A + 9 + A = A + 1 + REPEAT 8: + A = A + 8 + A = A + 1 + A = A + 4 + REPEAT 6: + A = A + 6 + REPEAT 2: + A = A + 3 + A = A + 9 + A = A + 6 + A = A + 9 + REPEAT 1: + A = A + 4 + REPEAT 3: + A = A + 3 + A = A + 4 + A = A + 2 + A = A + 8 + REPEAT 2: + A = A + 4 + A = A + 1 + REPEAT 9: + A = A + 2 + A = A + 9 + A = A + 7 +REPEAT 7: + REPEAT 7: + REPEAT 5: + A = A + 7 + REPEAT 5: + A = A + 1 + A = A + 1 + REPEAT 5: + A = A + 6 + REPEAT 1: + A = A + 4 + REPEAT 9: + A = A + 4 + A = A + 1 + REPEAT 6: + A = A + 8 + A = A + 5 + REPEAT 1: + A = A + 4 + REPEAT 5: + A = A + 8 + A = A + 7 + A = A + 2 + REPEAT 3: + A = A + 3 + REPEAT 8: + REPEAT 8: + A = A + 4 + A = A + 7 + REPEAT 5: + A = A + 1 + REPEAT 8: + A = A + 7 + A = A + 8 + A = A + 4 + A = A + 7 + A = A + 6 + A = A + 9 + A = A + 5 +REPEAT 3: + A = A + 5 + REPEAT 9: + A = A + 1 + A = A + 7 +REPEAT 1: + A = A + 8 +A = A + 4 +REPEAT 8: + REPEAT 7: + A = A + 2 + REPEAT 4: + A = A + 6 + A = A + 6 + REPEAT 1: + A = A + 7 + A = A + 1 +REPEAT 9: + REPEAT 5: + A = A + 6 + A = A + 5 + REPEAT 7: + A = A + 3 + A = A + 6 + A = A + 8 + REPEAT 2: + A = A + 7 + A = A + 1 + A = A + 9 + REPEAT 3: + REPEAT 3: + A = A + 5 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/RSA \350\247\243\345\257\206/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/RSA \350\247\243\345\257\206/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..ec173fb7c07cdbcdc2fe8bd24558f6d51578ae10 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/RSA \350\247\243\345\257\206/solution.md" @@ -0,0 +1,43 @@ +# RSA 解密 +RSA是一种经典的加密算法。它的基本加密过程如下。 + +首先生成两个质数p,q, 令$n = p \cdot q$,设d与$(p-1) \cdot (q-1)$互质,则可以找到e,使得$d \cdot e$除以$(p-1) \cdot (q-1)$的余数为1 +n,d,e组成了私钥,n,d构成了公钥。 +当使用公钥加密一个整数X时(X<=n-1),计算$C = X^d$ mod n,则C是加密后的密文。 +当收到密文C时,可以使用私钥解开,计算公式为:$X = C^e$ mod n。 +例如:当p = 5, q = 11, n = 55, e = 27。 +若加密数字24,得$24^3$ % 55 = 19。 +解密数字19,得$19^{27}$ % 55 = 24。 +现在你知道公钥中n = 1001733993063167141,d = 212353,同时,你截获了别人发送的密文C = 20190324,请问,原文是多少? + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/k\345\200\215\345\214\272\351\227\264/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/k\345\200\215\345\214\272\351\227\264/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e25731a59486ac884a66c3a14bb284d1d6af7c3b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/k\345\200\215\345\214\272\351\227\264/solution.md" @@ -0,0 +1,54 @@ +# k倍区间 +#### 问题描述 +给定一个长度为N的数列,$A_1, A_2, … A_N,$如果其中一段连续的子序列$A_i, A_{i+1}, … A_j(i <= j)$之和是K的倍数,我们就称这个区间[i, j]是K倍区间。 + +你能求出数列中总共有多少个K倍区间吗? +#### 输入格式 +第一行包含两个整数N和K。(1 <= N, K <= 100000) +以下N行每行包含一个整数$A_i$。(1 <= $A_i$ <= 100000) +#### 输出格式 +输出一个整数,代表K倍区间的数目。 +#### 样例输入 +``` +5 2 +1 +2 +3 +4 +5 +``` +#### 样例输出 +``` +6 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\211\344\275\223\346\224\273\345\207\273/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\211\344\275\223\346\224\273\345\207\273/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e34fa22f70de6fc1a03c72259b6cabb96bef2425 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\211\344\275\223\346\224\273\345\207\273/solution.md" @@ -0,0 +1,73 @@ +# 三体攻击 +#### 题目描述 +三体人将对地球发起攻击。为了抵御攻击,地球人派出了 A × B × C 艘战舰,在太空中排成一个 A 层 B 行 C 列的立方体。其中,第 i 层第 j 行第 k 列的战舰(记为战舰 (i, j, k))的生命值为 d(i, j, k)。 + +三体人将会对地球发起 m 轮“立方体攻击”,每次攻击会对一个小立方体中的所有战舰都造成相同的伤害。具体地,第 t 轮攻击用 7 个参数 $la_t, ra_t, lb_t, rb_t, lc_t, rc_t, h_t $描述; +所有满足$ i ∈ [la_t, ra_t],j ∈ [lb_t, rb_t],k ∈ [lc_t, rc_t] $的战舰 (i, j, k) 会受到 $h_t$ 的伤害。如果一个战舰累计受到的总伤害超过其防御力,那么这个战舰会爆炸。 + +地球指挥官希望你能告诉他,第一艘爆炸的战舰是在哪一轮攻击后爆炸的。 + +#### 输入格式 +从标准输入读入数据。 +第一行包括 4 个正整数 A, B, C, m; +第二行包含 A × B × C 个整数,其中第 ((i − 1)×B + (j − 1)) × C + (k − 1)+1 个数为 d(i, j, k); +第 3 到第 m + 2 行中,第 (t − 2) 行包含 7 个正整数 $la_t, ra_t, lb_t, rb_t, lc_t, rc_t, h_t$。 + +#### 输出格式 +输出到标准输出。 +输出第一个爆炸的战舰是在哪一轮攻击后爆炸的。保证一定存在这样的战舰。 + +#### 样例输入 +``` +2 2 2 3 +1 1 1 1 1 1 1 1 +1 2 1 2 1 1 1 +1 1 1 2 1 2 1 +1 1 1 1 1 1 2 +``` +#### 样例输出 +``` +2 +``` +#### 样例解释 +在第 2 轮攻击后,战舰 (1,1,1) 总共受到了 2 点伤害,超出其防御力导致爆炸。 + +#### 数据约定 +``` +对于 10% 的数据,B = C = 1; +对于 20% 的数据,C = 1; +对于 40% 的数据,A × B × C, m ≤ 10, 000; +对于 70% 的数据,A, B, C ≤ 200; +对于所有数据,A × B × C ≤ 10^6, m ≤ 10^6, 0 ≤ d(i, j, k), ht ≤ 10^9。 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\211\347\276\212\347\214\256\347\221\236/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\211\347\276\212\347\214\256\347\221\236/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..3552b91743580879702a4bf0356a2cafd0636553 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\211\347\276\212\347\214\256\347\221\236/solution.md" @@ -0,0 +1,38 @@ +# 三羊献瑞 +观察下面的加法算式: + +![](https://img-blog.csdnimg.cn/20200323231451860.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkxMDMyMA==,size_16,color_FFFFFF,t_70#pic_center) + +其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。 +请你填写“三羊献瑞”所代表的4位数字(答案唯一) + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\211\350\247\222\345\275\242\351\235\242\347\247\257/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\211\350\247\222\345\275\242\351\235\242\347\247\257/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..c7ed5486aff1a01be1c2cbe55b50dce92ea6045d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\211\350\247\222\345\275\242\351\235\242\347\247\257/solution.md" @@ -0,0 +1,39 @@ +# 三角形面积 +已知三角形三个顶点在直角坐标系下的坐标分别为: +``` +(2.3,2.5) +(6.4,3.1) +(5.1,7.2) +``` +求该三角形的面积。 + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\211\351\203\250\346\216\222\345\272\217/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\211\351\203\250\346\216\222\345\272\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e2b594d46635db490f6b88ca8926aae1188e011c --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\211\351\203\250\346\216\222\345\272\217/solution.md" @@ -0,0 +1,42 @@ +# 三部排序 +一般的排序有许多经典算法,如快速排序、希尔排序等。但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情况建立更好的解法。 + +比如,对一个整型数组中的数字进行分类排序: + +使得负数都靠左端,正数都靠右端,0在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过1次线性扫描就结束战斗!! + +以下的程序实现了该目标。 + +其中x指向待排序的整型数组,len是数组的长度。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\215\345\220\214\345\255\220\344\270\262/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\215\345\220\214\345\255\220\344\270\262/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..4135e0706a4ada0a4f72e176bacc13de066d41e9 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\215\345\220\214\345\255\220\344\270\262/solution.md" @@ -0,0 +1,38 @@ +# 不同子串 +#### 题目描述 +一个字符串的非空子串是指字符串中长度至少为1 的连续的一段字符组成的串。 +例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共7 个。 +注意在计算时,只算本质不同的串的个数。 +请问,字符串```0100110001010001```有多少个不同的非空子串? + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\226\347\272\252\346\234\253\347\232\204\346\230\237\346\234\237/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\226\347\272\252\346\234\253\347\232\204\346\230\237\346\234\237/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e6bce8d6917aaa10e2ef8f0ef627c708319e2669 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\270\226\347\272\252\346\234\253\347\232\204\346\230\237\346\234\237/solution.md" @@ -0,0 +1,44 @@ +# 世纪末的星期 +曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 + +还有人称今后的某个世纪末的12月31日,如果是星期一则会.... + +有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! + +于是,“谣言制造商”又修改为星期日...... + +1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? + +请回答该年份(只写这个4位整数,不要写12月31等多余信息) + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\230\347\247\257\345\260\276\351\233\266/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\230\347\247\257\345\260\276\351\233\266/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..53c7e30ce88f336ee6d01362c73f318458649d08 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\230\347\247\257\345\260\276\351\233\266/solution.md" @@ -0,0 +1,45 @@ +# 乘积尾零 +如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? +``` +5650 4542 3554 473 946 4114 3871 9073 90 4329 +2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 +9937 1173 6866 3397 4759 7557 3070 2287 1453 9899 +1486 5722 3135 1170 4014 5510 5120 729 2880 9019 +2049 698 4582 4346 4427 646 9742 7340 1230 7683 +5693 7015 6887 7381 4172 4341 2909 2027 7355 5649 +6701 6645 1671 5978 2704 9926 295 3125 3878 6785 +2066 4247 4800 1578 6652 4616 1113 6205 3264 2915 +3966 5291 2904 1285 2193 1428 2265 8730 9436 7074 +689 5510 8243 6114 337 4096 8199 7313 3685 211 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\230\347\247\257\346\234\200\345\244\247/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\230\347\247\257\346\234\200\345\244\247/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..8c06bbc077429545fd9d4727c135114a0d49831e --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\230\347\247\257\346\234\200\345\244\247/solution.md" @@ -0,0 +1,76 @@ +# 乘积最大 +给定 N 个整数 A1,A2,…AN。 + +请你从中选出 K 个数,使其乘积最大。 + +请你求出最大的乘积,由于乘积可能超出整型范围,你只需输出乘积除以 1000000009 的余数。 + +注意,如果 X<0, 我们定义 X 除以 1000000009 的余数是负(−X)除以 1000000009 的余数,即:0−((0−x)%1000000009) +#### 输入格式 +第一行包含两个整数 N 和 K。 + +以下 N 行每行一个整数 Ai。 + +#### 输出格式 +输出一个整数,表示答案。 + +#### 数据范围 +``` +1≤K≤N≤105, +−105≤Ai≤105 +``` +#### 输入样例1: +``` +5 3 +-100000 +-10000 +2 +100000 +10000 +``` +#### 输出样例1: +``` +999100009 +``` +#### 输入样例2: +``` +5 3 +-100000 +-100000 +-2 +-100000 +-100000 +#### 输出样例2: +-999999829 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\235\346\225\260\345\210\206\344\270\211\347\273\204/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\235\346\225\260\345\210\206\344\270\211\347\273\204/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..f3a8e5f11d8f417387b4b156802fd05b43d20b93 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\235\346\225\260\345\210\206\344\270\211\347\273\204/solution.md" @@ -0,0 +1,38 @@ +# 九数分三组 +1~9的数字可以组成3个3位数,设为:A,B,C, 现在要求满足如下关系: +``` +B = 2 * A +C = 3 * A +``` +请你写出A的所有可能答案,数字间用空格分开,数字按升序排列。 + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\235\346\225\260\347\273\204\345\210\206\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\235\346\225\260\347\273\204\345\210\206\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..674d6389784285f26b40e139f2d8e30c7a7300b8 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\235\346\225\260\347\273\204\345\210\206\346\225\260/solution.md" @@ -0,0 +1,33 @@ +# 九数组分数 +1,2,3…9 这九个数字组成一个分数,其值恰好为1/3,如何组法? + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\246\345\217\267\351\252\214\350\257\201/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\246\345\217\267\351\252\214\350\257\201/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..da50e71f5d6c0f74d9277ed6c7fe0d3c9d4b2ea9 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\246\345\217\267\351\252\214\350\257\201/solution.md" @@ -0,0 +1,40 @@ +# 书号验证 +2004年起,国际ISBN中心出版了《13位国际标准书号指南》。 +原有10位书号前加978作为商品分类标识;校验规则也改变。 +校验位的加权算法与10位ISBN的算法不同,具体算法是: +1. 用1分别乘ISBN的前12位中的奇数位(从左边开始数起),用3乘以偶数位,乘积之和以10为模, +2. 10与模值的差值再对10取模(即取个位的数字)即可得到校验位的值,其值范围应该为0~9。 + +下面的程序实现了该算法,请仔细阅读源码,填写缺失的部分。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\260\344\270\215\345\210\260\347\232\204\346\225\260\347\233\256/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\260\344\270\215\345\210\260\347\232\204\346\225\260\347\233\256/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..2f7c1ab00ebe10809b07505f4d0e92b39d90ac5e --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\271\260\344\270\215\345\210\260\347\232\204\346\225\260\347\233\256/solution.md" @@ -0,0 +1,66 @@ +# 买不到的数目 +#### 问题描述 + +小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。 + +小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。 + +你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。 + +本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。 + +#### 输入格式 + +两个正整数,表示每种包装中糖的颗数(都不多于1000) + +#### 输出格式 + +一个正整数,表示最大不能买到的糖数 + +#### 样例输入1 +``` +4 7 +``` +#### 样例输出1 +``` +17 +``` +#### 样例输入2 +``` +3 5 +``` +#### 样例输出2 +``` +7 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\272\244\346\215\242\347\223\266\345\255\220/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\272\244\346\215\242\347\223\266\345\255\220/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e165c4e3ad76b1778d15a23f07a0b6c87120c8f9 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\272\244\346\215\242\347\223\266\345\255\220/solution.md" @@ -0,0 +1,67 @@ +# 交换瓶子 +有N个瓶子,编号 1 ~ N,放在架子上。 +比如有5个瓶子: +2 1 3 5 4 +要求每次拿起2个瓶子,交换它们的位置。 +经过若干次后,使得瓶子的序号为: +1 2 3 4 5 +对于这么简单的情况,显然,至少需要交换2次就可以复位。 +如果瓶子更多呢?你可以通过编程来解决。 + +输入格式为两行: +第一行: 一个正整数N(N<10000), 表示瓶子的数目 +第二行:N个正整数,用空格分开,表示瓶子目前的排列情况。 + +输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。 + +例如,输入: +``` +5 +3 1 2 5 4 +``` +程序应该输出: +``` +3 +``` +再例如,输入: +``` +5 +5 4 3 2 1 +``` +程序应该输出: +``` +2 +``` + + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\272\272\347\211\251\347\233\270\345\205\263\346\200\247\345\210\206\346\236\220/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\272\272\347\211\251\347\233\270\345\205\263\346\200\247\345\210\206\346\236\220/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..85c9f3a194c9d61e03a7572fd52dee2d19239c50 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\272\272\347\211\251\347\233\270\345\205\263\346\200\247\345\210\206\346\236\220/solution.md" @@ -0,0 +1,71 @@ +# 人物相关性分析 +小明正在分析一本小说中的人物相关性。 + +他想知道在小说中 Alice 和 Bob 有多少次同时出现。 + +更准确的说,小明定义 Alice 和 Bob “同时出现”的意思是:在小说文本中 Alice 和 Bob 之间不超过 K 个字符。 + +例如以下文本: +``` +This is a story about Alice and Bob. Alice wants to send a private message to Bob. +``` +假设 K=20,则 Alice 和 Bob 同时出现了 2 次,分别是 Alice and Bob 和 Bob. Alice。 + +前者 Alice 和 Bob 之间有 5 个字符,后者有 2 个字符。 + +注意: + +1. Alice 和 Bob 是大小写敏感的,alice 或 bob 等并不计算在内。 +2. Alice 和 Bob 应为单独的单词,前后可以有标点符号和空格,但是不能有字母。例如 Bobbi 並不算出现了 Bob。 +#### 输入格式 +第一行包含一个整数 K。 + +第二行包含一行字符串,只包含大小写字母、标点符号和空格。长度不超过 1000000。 + +#### 输出格式 +输出一个整数,表示 Alice 和 Bob 同时出现的次数。 + +#### 数据范围 +``` +1≤K≤1000000 +``` +#### 输入样例: +``` +20 +This is a story about Alice and Bob. Alice wants to send a private message to Bob. +``` +输出样例: +``` +2 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\273\230\350\264\246\351\227\256\351\242\230/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\273\230\350\264\246\351\227\256\351\242\230/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..c1a59a765378e9277aae879596c67e035100f882 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\273\230\350\264\246\351\227\256\351\242\230/solution.md" @@ -0,0 +1,87 @@ +# 付账问题 +#### 题目描述 +几个人一起出去吃饭是常有的事。但在结帐的时候,常常会出现一些争执。 + +现在有 n 个人出去吃饭,他们总共消费了 S 元。其中第 i 个人带了 ai 元。幸运的是,所有人带的钱的总数是足够付账的,但现在问题来了:每个人分别要出多少钱呢? + +为了公平起见,我们希望在总付钱量恰好为 S 的前提下,最后每个人付的钱的标准差最小。这里我们约定,每个人支付的钱数可以是任意非负实数,即可以不是1分钱的整数倍。你需要输出最小的标准差是多少。 + +标准差的介绍:标准差是多个数与它们平均数差值的平方平均数,一般用于刻画这些数之间的“偏差有多大”。形式化地说,设第 i 个人付的钱为 bi 元,那么标准差为 : + ![参见p1.png](https://img-blog.csdnimg.cn/20201015164915888.png#pic_center) + + +#### 输入格式 +从标准输入读入数据。 + +第一行包含两个整数 n、S; +第二行包含 n 个非负整数 a1, …, an。 + +#### 输出格式 +输出到标准输出。 + +输出最小的标准差,四舍五入保留 4 位小数。 +保证正确答案在加上或减去 10^−9 后不会导致四舍五入的结果发生变化。 + +#### 样例1输入 +``` +5 2333 +666 666 666 666 666 +``` +#### 样例输出 +``` +0.0000 +``` +#### 样例解释 +每个人都出 2333/5 元,标准差为 0。 + +#### 样例输入 +``` +10 30 +2 1 4 7 4 8 3 6 4 7 +``` +#### 样例输出 +``` +0.7928 +``` +#### 数据说明 +对于 10% 的数据,所有 ai 相等; +对于 30% 的数据,所有非 0 的 ai 相等; +对于 60% 的数据,n ≤ 1000; +对于 80% 的数据,n ≤ 10^5; +对于所有数据,n ≤ 5 × 10^5, 0 ≤ ai ≤ 10^9。 + +#### 资源约定: +峰值内存消耗(含虚拟机) < 256M +CPU消耗 < 1000ms + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\277\256\346\224\271\346\225\260\347\273\204/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\277\256\346\224\271\346\225\260\347\273\204/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..5a64ccbce1ce1fd48b78c6a18f4fbe148970f7fe --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\344\277\256\346\224\271\346\225\260\347\273\204/solution.md" @@ -0,0 +1,57 @@ +# 修改数组 +#### 问题描述 +给定一个长度为 N 的数组$ A = [A_1; A_2; · · · A_N]$,数组中有可能有重复出现的整数。 +现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改$A_2, A_3, · · · , A_N$。 +当修改 $A_i$时,小明会检查 $A_i$ 是否在$ A_1 ∼ A_{i−1} $中出现过。如果出现过,则小明会给$ A_i $加上 1 ;如果新的$ A_i $仍在之前出现过,小明会持续给$ A_i $加 1 ,直到$ A_i $没有在$ A_1 ∼ A_{i−1}$ 中出现过。 +当$ A_N $也经过上述修改之后,显然 A 数组中就没有重复的整数了。 +现在给定初始的 A 数组,请你计算出最终的 A 数组。 + +#### 输入格式 +第一行包含一个整数 N。 +第二行包含 N 个整数$ A_1; A_2; · · · ; A_N $。 + +#### 输出格式 +输出 N 个整数,依次是最终的$ A_1; A_2; · · · ; A_N $。 + +#### 样例输入 +``` +5 +2 1 1 3 4 +``` +#### 样例输出 +``` +2 1 3 4 5 +``` + + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\200\215\346\225\260\351\227\256\351\242\230/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\200\215\346\225\260\351\227\256\351\242\230/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..47915b6eddf6189145bf967628f24cbb1a77cb22 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\200\215\346\225\260\351\227\256\351\242\230/solution.md" @@ -0,0 +1,59 @@ +# 倍数问题 +#### 题目描述 +众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数。但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼。现在小葱给了你 n 个数,希望你从这 n 个数中找到三个数,使得这三个数的和是 K 的倍数,且这个和最大。数据保证一定有解。 + +#### 输入格式 +从标准输入读入数据。 +第一行包括 2 个正整数 n, K。 +第二行 n 个正整数,代表给定的 n 个数。 + +#### 输出格式 +输出到标准输出。 +输出一行一个整数代表所求的和。 + +#### 样例输入 +``` +4 3 +1 2 3 4 +``` + +#### 样例输出 +``` +9 +``` + +#### 样例解释 +``` +选择2、3、4。 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\250\347\220\203\345\217\230\346\232\226/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\250\347\220\203\345\217\230\346\232\226/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..275991f6e780d0ba75c2dbfe9c0c047141f57f35 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\250\347\220\203\345\217\230\346\232\226/solution.md" @@ -0,0 +1,108 @@ +# 全球变暖 +你有一张某海域 N×N 像素的照片,”.”表示海洋、”#”表示陆地,如下所示: +``` +....... +.##.... +.##.... +....##. +..####. +...###. +....... +``` +其中”上下左右”四个方向上连在一起的一片陆地组成一座岛屿,例如上图就有 2 座岛屿。 + +由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。 + +具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。 + +例如上图中的海域未来会变成如下样子: +``` +....... +....... +....... +....... +....#.. +....... +....... +``` +请你计算:依照科学家的预测,照片中有多少岛屿会被完全淹没。 + +#### 输入格式 +第一行包含一个整数N。 + +以下 N 行 N 列,包含一个由字符”#”和”.”构成的 N×N 字符矩阵,代表一张海域照片,”#”表示陆地,”.”表示海洋。 + +照片保证第 1 行、第 1 列、第 N 行、第 N 列的像素都是海洋。 + +#### 输出格式 +一个整数表示答案。 + +#### 数据范围 +``` +1≤N≤1000 +``` +#### 输入样例1: +``` +7 +....... +.##.... +.##.... +....##. +..####. +...###. +....... +``` +#### 输出样例1: +``` +1 +``` +#### 输入样例2: +``` +9 +......... +.##.##... +.#####... +.##.##... +......... +.##.#.... +.#.###... +.#..#.... +......... +``` +#### 输出样例2: +``` +1 +``` + + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\253\346\254\241\346\261\202\345\222\214/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\253\346\254\241\346\261\202\345\222\214/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d44244b3ff84c0687a91a3fae8c6dca0e940f2ca --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\253\346\254\241\346\261\202\345\222\214/solution.md" @@ -0,0 +1,58 @@ +# 八次求和 +#### 问题描述 +给定正整数 n, 求 1^8 + 2^8 +···+ n^8 mod 123456789 。其中 mod 表示取余。 +#### 输入格式 +输入的第一行包含一个整数 n。 +#### 输出格式 +输出一行,包含一个整数,表示答案。 +#### 样例输入 +``` +2 +``` +#### 样例输出 +``` +257 +``` +#### 样例输入 +``` +987654 +``` +#### 样例输出 +``` +43636805 +``` +#### 评测用例规模与约定 +对于 20% 的评测用例,1≤n≤20。 +对于 60% 的评测用例,1≤n≤1000。 +对于所有评测用例,1≤n≤1000000。 + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\255\350\247\222\345\241\253\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\255\350\247\222\345\241\253\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..cbf8a978bc29a6ae4bf9599021bb17d88f022afa --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\255\350\247\222\345\241\253\346\225\260/solution.md" @@ -0,0 +1,36 @@ +# 六角填数 +如图所示六角形中,填入1~12的数字。 +使得每条直线上的数字之和都相同。 +图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? +![](https://img-blog.csdn.net/20160124154420856) + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\260\351\241\277\350\232\202\350\232\201/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\260\351\241\277\350\232\202\350\232\201/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e0fff0018d60a06a7ecdd4afacaaf239cee79c80 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\205\260\351\241\277\350\232\202\350\232\201/solution.md" @@ -0,0 +1,79 @@ +# 兰顿蚂蚁 +问题描述 +![](https://img-blog.csdnimg.cn/20200526100857208.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xsX3dhbmc=,size_16,color_FFFFFF,t_70) + +兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。 +平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。 +蚂蚁的头部朝向为:上下左右其中一方。 +蚂蚁的移动规则十分简单: +若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格; +若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。 + +规则虽然简单,蚂蚁的行为却十分复杂。刚刚开始时留下的路线都会有接近对称,像是会重复,但不论起始状态如何,蚂蚁经过漫长的混乱活动后,会开辟出一条规则的“高速公路”。 +蚂蚁的路线是很难事先预测的。 +你的任务是根据初始状态,用计算机模拟兰顿蚂蚁在第n步行走后所处的位置。 +#### 输入格式 +输入数据的第一行是 m n 两个整数(3 < m, n < 100),表示正方形格子的行数和列数。 +接下来是 m 行数据。 +每行数据为 n 个被空格分开的数字。0 表示白格,1 表示黑格。 +接下来是一行数据:x y s k, 其中x y为整数,表示蚂蚁所在行号和列号(行号从上到下增长,列号从左到右增长,都是从0开始编号)。s 是一个大写字母,表示蚂蚁头的朝向,我们约定:上下左右分别用:UDLR表示。k 表示蚂蚁走的步数。 +#### 输出格式 +输出数据为两个空格分开的整数 p q, 分别表示蚂蚁在k步后,所处格子的行号和列号。 +#### 样例输入 +``` +5 6 +0 0 0 0 0 0 +0 0 0 0 0 0 +0 0 1 0 0 0 +0 0 0 0 0 0 +0 0 0 0 0 0 +2 3 L 5 +``` +#### 样例输出 +``` +1 3 +``` +#### 样例输入 +``` +3 3 +0 0 0 +1 1 1 +1 1 1 +1 1 U 6 +``` +#### 样例输出 +``` +0 0 +``` + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\207\221\347\256\227\345\274\217/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\207\221\347\256\227\345\274\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..ca11e752fef1a82cdf20c494edd14373da9ecfa6 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\207\221\347\256\227\345\274\217/solution.md" @@ -0,0 +1,45 @@ +# 凑算式 +``` +   B    DEF +A + —- + ——–- = 10 +   C    GHI +``` +这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。 + +比如: +6+8/3+952/714 就是一种解法, +5+3/1+972/486 是另一种解法。 + +这个算式一共有多少种解法? + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\345\260\217\347\273\204/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\345\260\217\347\273\204/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d3c57b6cae39457d87137c3b4100adccdee477f5 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\345\260\217\347\273\204/solution.md" @@ -0,0 +1,70 @@ +# 分小组 +9名运动员参加比赛,需要分3组进行预赛。有哪些分组的方案呢? +我们标记运动员为 A,B,C,... I +下面的程序列出了所有的分组方法。 +该程序的正常输出为: +``` +ABC DEF GHI +ABC DEG FHI +ABC DEH FGI +ABC DEI FGH +ABC DFG EHI +ABC DFH EGI +ABC DFI EGH +ABC DGH EFI +ABC DGI EFH +ABC DHI EFG +ABC EFG DHI +ABC EFH DGI +ABC EFI DGH +ABC EGH DFI +ABC EGI DFH +ABC EHI DFG +ABC FGH DEI +ABC FGI DEH +ABC FHI DEG +ABC GHI DEF +ABD CEF GHI +ABD CEG FHI +ABD CEH FGI +ABD CEI FGH +ABD CFG EHI +ABD CFH EGI +ABD CFI EGH +ABD CGH EFI +ABD CGI EFH +ABD CHI EFG +ABD EFG CHI +..... (以下省略,总共560行)。 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\345\267\247\345\205\213\345\212\233/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\345\267\247\345\205\213\345\212\233/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..00b64eeb83a4ed6394af59e1240f582ed63e9d80 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\345\267\247\345\205\213\345\212\233/solution.md" @@ -0,0 +1,58 @@ +# 分巧克力 +儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 +小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。 +为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足: +1. 形状是正方形,边长是整数 +2. 大小相同 + +例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。 +当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么? +#### 输入 +第一行包含两个整数N和K。(1 <= N, K <= 100000) +以下N行每行包含两个整数Hi和Wi。(1 <= Hi, Wi <= 100000) +输入保证每位小朋友至少能获得一块1x1的巧克力。 +#### 输出 +输出切出的正方形巧克力最大可能的边长。 +#### 样例输入: +``` +2 10 +6 5 +5 6 +``` +#### 样例输出: +``` +2 +``` + + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..799f9bc23eb14d4f0ede78e62aced744d482005c --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\346\225\260/solution.md" @@ -0,0 +1,35 @@ +# 分数 +1/1 + 1/2 + 1/4 + 1/8 + 1/16 + … 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来。 +类似:3/2 +当然,这只是加了前2项而已。分子分母要求互质。 + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\347\261\273\350\256\241\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\347\261\273\350\256\241\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b3116ebd80cf69e7c04fafc2d8c677c36c60ffc0 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\347\261\273\350\256\241\346\225\260/solution.md" @@ -0,0 +1,55 @@ +# 分类计数 + +#### 问题描述 +输入一个字符串,请输出这个字符串包含多少个大写字母,多少个小写字母,多少个数字。 + +#### 输入格式 +输入一行包含一个字符串。 + +#### 输出格式 +输出三行,每行一个整数,分别表示大写字母、小写字母和数字的个数。 + +#### 样例输入 +``` +1+a=Aab +``` +#### 样例输出 +``` +1 +3 +1 +``` +#### 评测用例规模与约定 +对于所有评测用例,字符串由可见字符组成,长度不超过 100。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\347\263\226\346\236\234/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\347\263\226\346\236\234/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..2b4d2ef59ee4ac777e1d0429a93828b3e09cd9e5 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\210\206\347\263\226\346\236\234/solution.md" @@ -0,0 +1,55 @@ +# 分糖果 +#### 问题描述 +有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: +每个小朋友都把自己的糖果分一半给左手边的孩子。 +一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。 +反复进行这个游戏,直到所有小朋友的糖果数都相同为止。 +你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。 + +#### 输入格式 +程序首先读入一个整数N(2 2+2+8=12 => 1+2=3 + +上面的数字缩位后变为:344836, 这就是程序最终的输出结果! + +要求程序从标准输入接收数据,在标准输出上输出结果。 + +#### 输入格式为: +第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行字符串,就是等待变换的符串。 +#### 输出格式为: +n行变换后的6位密码。 + +#### 输入: +``` +5 +zhangfeng +wangximing +jiujingfazi +woaibeijingtiananmen +haohaoxuexi +``` +#### 输出: +``` +772243 +344836 +297332 +716652 +875843 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\257\206\347\240\201\350\204\261\350\220\275/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\257\206\347\240\201\350\204\261\350\220\275/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..39e902dd8c8a002af1f8acbae768823ef3a9ad1d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\257\206\347\240\201\350\204\261\350\220\275/solution.md" @@ -0,0 +1,59 @@ +# 密码脱落 +X星球的考古学家发现了一批古代留下来的密码。 +这些密码是由A、B、C、D 四种植物的种子串成的序列。 +仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。 +由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。 + +你的任务是: +给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。 + +输入一行,表示现在看到的密码串(长度不大于1000) +要求输出一个正整数,表示至少脱落了多少个种子。 + +例如,输入: +``` +ABCBA +``` +则程序应该输出: +``` +0 +``` +再例如,输入: +``` +ABDCDCBABC +``` +则程序应该输出: +``` +3 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\257\222\345\201\207\344\275\234\344\270\232/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\257\222\345\201\207\344\275\234\344\270\232/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..c425320b267f6d15c568333e2a99047959ad60a0 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\257\222\345\201\207\344\275\234\344\270\232/solution.md" @@ -0,0 +1,58 @@ +# 寒假作业 +现在小学的数学题目也不是那么好玩的。 +看看这个寒假作业: +``` +□ + □ = □ +□ - □ = □ +□ × □ = □ +□ ÷ □ = □ +``` +每个方块代表1~13中的某一个数字,但不能重复。比如: +``` +6 + 7 = 13 +9 - 8 = 1 +3 * 4 = 12 +10 / 2 = 5 +``` +以及: +``` +7 + 6 = 13 +9 - 8 = 1 +3 * 4 = 12 +10 / 2 = 5 +``` +就算两种解法。(加法,乘法交换律后算不同的方案) + +你一共找到了多少种方案? + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\257\273\346\211\2762020/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\257\273\346\211\2762020/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..2fa5d2768eaf2dae635912c5f0f8fccda3a64b39 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\257\273\346\211\2762020/solution.md" @@ -0,0 +1,54 @@ +# 寻找2020 +小蓝有一个数字矩阵,里面只包含数字 0 和 2。小蓝很喜欢 2020,他想找到这个数字矩阵中有多少个 2020 。 + +小蓝只关注三种构成 2020 的方式: +* 同一行里面连续四个字符从左到右构成 2020。 +* 同一列里面连续四个字符从上到下构成 2020。 +* 在一条从左上到右下的斜线上连续四个字符,从左上到右下构成 2020。 + +例如,对于下面的矩阵: +``` +220000 +000000 +002202 +000000 +000022 +002020 +``` +一共有 5 个 2020。其中 1 个是在同一行里的,1 个是在同一列里的,3 个是斜线上的。 +小蓝的矩阵比上面的矩阵要大,由于太大了,他只好将这个矩阵放在了一个文件里面,在试题目录下有一个文件 2020.txt,里面给出了小蓝的矩阵。 +请帮助小蓝确定在他的矩阵中有多少个 2020。 + + + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\260\217\346\234\213\345\217\213\345\264\207\346\213\234\345\234\210/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\260\217\346\234\213\345\217\213\345\264\207\346\213\234\345\234\210/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e9c751fdcc699b8d1ef1ce948584ca7c7d6df06a --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\260\217\346\234\213\345\217\213\345\264\207\346\213\234\345\234\210/solution.md" @@ -0,0 +1,72 @@ +# 小朋友崇拜圈 +#### 问题描述: + +班里 N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己)。在一个游戏中,需要小朋友坐一个圈,每个小朋友都有自己最崇拜的小朋友在他的右手边。求满足条件的圈最大多少人?小朋友编号为1,2,3....N + +#### 输入描述 + +输入第一行,一个整数N(3 < N < 100000) + +接下来一行 N个整数,由空格分开。 + +#### 输出描述 + +要求输出一个整数,表示满足条件的最大圈的人数。 + +### 输入输出样例 +#### 输入 +``` +9 +3 4 2 5 3 8 4 6 9 +``` +#### 输出 +``` +4 +``` +#### 样例解释 + +如下图所示,崇拜关系用箭头表示,红色表示不在圈中。 +显然,最大圈是[2 4 5 3] 构成的圈。 + +![](https://img-blog.csdnimg.cn/20190317193536482.png) + +#### 输入: +``` +30 +22 28 16 6 27 21 30 1 29 10 9 14 24 11 7 2 8 5 26 4 12 3 25 18 20 19 23 17 13 15 +``` +#### 输出: +``` +16 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..3bfd44c4bdcb070cfc5e2aef863a8a0fe439143b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\260\217\346\234\213\345\217\213\346\216\222\351\230\237/solution.md" @@ -0,0 +1,71 @@ +# 小朋友排队 +#### 题目描述 +n 个小朋友站成一排。 + +现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 + +每个小朋友都有一个不高兴的程度。 + +开始的时候,所有小朋友的不高兴程度都是 0。 + +如果某个小朋友第一次被要求交换,则他的不高兴程度增加 1,如果第二次要求他交换,则他的不高兴程度增加 2(即不高兴程度为 3),依次类推。当要求某个小朋友第 k 次交换时,他的不高兴程度增加 k。 + +请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。 + +如果有两个小朋友身高一样,则他们谁站在谁前面是没有关系的。 + +#### 输入格式 +输入的第一行包含一个整数 n,表示小朋友的个数。 + +第二行包含 n 个整数 H1,H2,…,Hn,分别表示每个小朋友的身高。 + +#### 输出格式 +输出一行,包含一个整数,表示小朋友的不高兴程度和的最小值。 + +#### 数据范围 +``` +1≤n≤100000, +0≤Hi≤1000000 +``` +#### 输入样例: +``` +3 +3 2 1 +``` +#### 输出样例: +``` +9 +``` +#### 样例解释 +首先交换身高为3和2的小朋友,再交换身高为3和1的小朋友,再交换身高为2和1的小朋友,每个小朋友的不高兴程度都是3,总和为9。 + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\270\246\345\210\206\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\270\246\345\210\206\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..c7298112607819de57538e63d63141e6205ebf5d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\270\246\345\210\206\346\225\260/solution.md" @@ -0,0 +1,65 @@ +# 带分数 +#### 问题描述 +100 可以表示为带分数的形式:100 = 3 + 69258 / 714。 + +还可以表示为:100 = 82 + 3546 / 197。 + +注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。 + +类似这样的带分数,100 有 11 种表示法。 + +#### 输入格式 +从标准输入读入一个正整数N (N<1000*1000) + +#### 输出格式 +程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。 + +注意:不要求输出每个表示,只统计有多少表示法! + +#### 样例输入1 +``` +100 +``` +#### 样例输出1 +``` +11 +``` +#### 样例输入2 +``` +105 +``` +#### 样例输出2 +``` +6 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\263\346\226\271\345\222\214/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\263\346\226\271\345\222\214/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..1eed3d671fde6f3dee0a7966793a672003aa7afe --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\263\346\226\271\345\222\214/solution.md" @@ -0,0 +1,35 @@ +# 平方和 +小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362。注意,平方和是指将每个数分别平方后求和。 +请问,在 1 到 2019 中,所有这样的数的平方和是多少? + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\263\351\235\242\345\210\206\345\211\262/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\263\351\235\242\345\210\206\345\211\262/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..da1ada9fda485c7ec099f296724d48f8cbf23ff9 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\263\351\235\242\345\210\206\345\211\262/solution.md" @@ -0,0 +1,33 @@ +# 平面分割 +20个圆和20条直线最多能把平面分成多少个部分? + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\263\351\235\242\345\210\207\345\210\206/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\263\351\235\242\345\210\207\345\210\206/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..6f32bf2afc5fa80392fc70d65a86b5e2822e478a --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\263\351\235\242\345\210\207\345\210\206/solution.md" @@ -0,0 +1,56 @@ +# 平面切分 +#### 问题描述 +平面上有 N条直线,其中第 i条直线是$ y = A_i*x + B_i$。 + +请计算这些直线将平面分成了几个部分。 + +#### 输入格式 +第一行包含一个整数N。 + +以下N行,每行包含两个整数 $A_i, B_i$。 + +#### 输出格式 +一个整数代表答案。 + +#### 样例输入 +``` +3 +1 1 +2 2 +3 3 +``` +#### 样例输出 +``` +6 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\264\345\217\267\345\255\227\347\254\246/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\264\345\217\267\345\255\227\347\254\246/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..0fbad319fbcf24fe927815e7fda603af5d2d21db --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\264\345\217\267\345\255\227\347\254\246/solution.md" @@ -0,0 +1,35 @@ +# 年号字符 +小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。对于 27 以上的数字,小明用两位或长位的字符串来对应,例如 AA 对应 27,AB 对 应 28,AZ 对应 52,LQ 对应 329。 +请问 2019 对应的字符串是什么? + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\270\350\277\220\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\270\350\277\220\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..0dcd05e3e45aff8baf7078b1e1b3b3f9893a786f --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\271\270\350\277\220\346\225\260/solution.md" @@ -0,0 +1,67 @@ +# 幸运数 +#### 问题描述 +幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成。 +首先从1开始写出自然数1,2,3,4,5,6,… +1 就是第一个幸运数。 +我们从2这个数开始。把所有序号能被2整除的项删除,变为: +1 _ 3 _ 5 _ 7 _ 9 … +把它们缩紧,重新记序,为: +1 3 5 7 9 … 。 +这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被3整除!! 删除的应该是5,11, 17, … +此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,…) +最后剩下的序列类似: +``` +1, 3, 7, 9, 13, 15, 21, 25, 31, 33, 37, 43, 49, 51, 63, 67, 69, 73, 75, 79, … +``` +#### 输入格式 +输入两个正整数m n, 用空格分开 (m < n < 1000*1000) + +#### 输出格式 +程序输出 位于m和n之间的幸运数的个数(不包含m和n)。 +#### 样例输入1 +``` +1 20 +``` +#### 样例输出1 +``` +5 +``` +#### 样例输入2 +``` +30 69 +``` +#### 样例输出2 +``` +8 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\276\252\347\216\257\350\212\202\351\225\277\345\272\246/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\276\252\347\216\257\350\212\202\351\225\277\345\272\246/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..ced9d549a9e2a8309e64d67bb8d35eabb63e52a6 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\276\252\347\216\257\350\212\202\351\225\277\345\272\246/solution.md" @@ -0,0 +1,35 @@ +# 循环节长度 +两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。 +比如,11/13=6=>0.846153846153….. 其循环节为[846153] 共有6位。 +下面的方法,可以求出循环节的长度。 + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\276\256\347\224\237\347\211\251\345\242\236\346\256\226/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\276\256\347\224\237\347\211\251\345\242\236\346\256\226/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..881e40418986deb17d7b859bc0f3d9e900028bac --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\276\256\347\224\237\347\211\251\345\242\236\346\256\226/solution.md" @@ -0,0 +1,39 @@ +# 微生物增殖 +假设有两种微生物 X 和 Y +X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。 +一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。 +现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。 +如果X=10,Y=90呢? +本题的要求就是写出这两种初始条件下,60分钟后Y的数目。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\277\253\351\200\237\346\216\222\345\272\217/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\277\253\351\200\237\346\216\222\345\272\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..4c3eabd9f42e41e66774ca239ecc83f2464886cf --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\345\277\253\351\200\237\346\216\222\345\272\217/solution.md" @@ -0,0 +1,47 @@ +# 快速排序 +#### 问题描述 +用递归来实现快速排序(quick sort)算法。快速排序算法的基本思路是:假设要对一个数组a进行排序,且a[0] = x。首先对数组中的元素进行调整,使x放在正确的位置上。同时,所有比x小的数都位于它的左边,所有比x大的数都位于它的右边。然后对于左、右两段区域,递归地调用快速排序算法来进行排序。 +#### 输入格式: +输入只有一行,包括若干个整数(不超过10个),以0结尾。 +#### 输出格式: +输出只有一行,即排序以后的结果(不包括末尾的0)。 +### 输入输出样例 +#### 样例输入 +``` +5 2 6 1 7 3 4 0 +``` +#### 样例输出 +``` +1 2 3 4 5 6 7 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\210\220\347\273\251\345\210\206\346\236\220/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\210\220\347\273\251\345\210\206\346\236\220/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..28aec772e9217456a0121430f3de07c5d2d5c62f --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\210\220\347\273\251\345\210\206\346\236\220/solution.md" @@ -0,0 +1,68 @@ +# 成绩分析 +#### 问题描述 +小蓝给学生们组织了一场考试,卷面总分为 分,每个学生的得分都是一个 到 的整数。 + +请计算这次考试的最高分、最低分和平均分。 + +#### 输入格式 +输入的第一行包含一个整数 ,表示考试人数。 + +接下来 行,每行包含一个 至 的整数,表示一个学生的得分。 + +#### 输出格式 +输出三行。 + +第一行包含一个整数,表示最高分。 + +第二行包含一个整数,表示最低分。 + +第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。 + +#### 样例输入 + +``` +80 +92 +56 +74 +88 +99 +10 +``` +#### 样例输出 +``` +99 +10 +71.29 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\210\220\347\273\251\347\273\237\350\256\241/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\210\220\347\273\251\347\273\237\350\256\241/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b0ab3cb5300c29abb442d16b38d287c5653a26e2 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\210\220\347\273\251\347\273\237\350\256\241/solution.md" @@ -0,0 +1,49 @@ +# 成绩统计 +#### 问题描述 +编写一个程序,建立了一条单向链表,每个结点包含姓名、学号、英语成绩、数学成绩和C++成绩,并通过链表操作平均最高的学生和平均分最低的学生并且输出。 +#### 输入格式 +输入n+1行,第一行输入一个正整数n,表示学生数量;接下来的n行每行输入5个数据,分别表示姓名、学号、英语成绩、数学成绩和C++成绩。注意成绩有可能会有小数。 +#### 输出格式 +输出两行,第一行输出平均成绩最高的学生姓名。第二行输出平均成绩最低的学生姓名。 +#### 样例输入 +``` +2 +yx1 1 45 67 87 +yx2 2 88 90 99 +``` +#### 样例输出 +``` +yx2 +yx1 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\213\351\223\276\346\240\267\345\274\217/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\213\351\223\276\346\240\267\345\274\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e8fdadb5405663ea68b375112c28e7d57e89201a --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\213\351\223\276\346\240\267\345\274\217/solution.md" @@ -0,0 +1,35 @@ +# 手链样式 +小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。 +他想用它们串成一圈作为手链,送给女朋友。 +现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢? + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\221\345\205\213\345\272\217\345\210\227/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\221\345\205\213\345\272\217\345\210\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..155c7a332839b3be71fe60eafb4979557854cd8b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\221\345\205\213\345\272\217\345\210\227/solution.md" @@ -0,0 +1,40 @@ +# 扑克序列 +A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。 +要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。 + +请填写出所有符合要求的排列中,字典序最小的那个。 + +例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。 + + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\223\345\215\260\345\233\276\345\275\242/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\223\345\215\260\345\233\276\345\275\242/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..c8439cbc35e449f3464c340ebfc2470a600535b7 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\223\345\215\260\345\233\276\345\275\242/solution.md" @@ -0,0 +1,92 @@ +# 打印图形 +小明在X星球的城堡中发现了如下图形和文字: +``` +rank=3 + * + * * + * * +* * * * +rank=5 + * + * * + * * + * * * * + * * + * * * * + * * * * + * * * * * * * * + * * + * * * * + * * * * + * * * * * * * * + * * * * + * * * * * * * * + * * * * * * * * +* * * * * * * * * * * * * * * * +ran=6 + * + * * + * * + * * * * + * * + * * * * + * * * * + * * * * * * * * + * * + * * * * + * * * * + * * * * * * * * + * * * * + * * * * * * * * + * * * * * * * * + * * * * * * * * * * * * * * * * + * * + * * * * + * * * * + * * * * * * * * + * * * * + * * * * * * * * + * * * * * * * * + * * * * * * * * * * * * * * * * + * * * * + * * * * * * * * + * * * * * * * * + * * * * * * * * * * * * * * * * + * * * * * * * * + * * * * * * * * * * * * * * * * + * * * * * * * * * * * * * * * * +* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +``` +小明开动脑筋,编写了如下的程序,实现该图形的打印。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\223\345\215\260\350\217\261\345\275\242/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\223\345\215\260\350\217\261\345\275\242/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..28de2281cc2e72d4e2f29aba58884158008eb5a0 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\223\345\215\260\350\217\261\345\275\242/solution.md" @@ -0,0 +1,52 @@ +# 打印菱形 +给出菱形的边长,在控制台上打印出一个菱形来。 +为了便于比对空格,我们把空格用句点代替。 +当边长为8时,菱形为: +``` + * + * * + * * + * * + * * + * * + * * +* * + * * + * * + * * + * * + * * + * * + * +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\277\345\216\213\350\256\241\347\256\227/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\277\345\216\213\350\256\241\347\256\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..ba2258c9b8e737aa4c8f5f111ae674451236e3bc --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\211\277\345\216\213\350\256\241\347\256\227/solution.md" @@ -0,0 +1,83 @@ +# 承压计算 +X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。 + +每块金属原料的外形、尺寸完全一致,但重量不同。 +金属材料被严格地堆放成金字塔形。 + + +``` + + 7 + 5 8 + 7 8 8 + 9 2 7 2 + 8 1 4 9 1 + 8 1 8 8 4 1 + 7 9 6 1 4 5 4 + 5 6 5 5 6 9 5 6 + 5 5 4 7 9 3 5 5 1 + 7 5 7 9 7 4 7 3 3 1 + 4 6 4 5 5 8 8 3 2 4 3 + 1 1 3 3 1 6 6 5 5 4 4 2 + 9 9 9 2 1 9 1 9 2 9 5 7 9 + 4 3 3 7 7 9 3 6 1 3 8 8 3 7 + 3 6 8 1 5 3 9 5 8 3 8 1 8 3 3 + 8 3 2 3 3 5 5 8 5 4 2 8 6 7 6 9 + 8 1 8 1 8 4 6 2 2 1 7 9 4 2 3 3 4 + 2 8 4 2 2 9 9 2 8 3 4 9 6 3 9 4 6 9 + 7 9 7 4 9 7 6 6 2 8 9 4 1 8 1 7 2 1 6 + 9 2 8 6 4 2 7 9 5 4 1 2 5 1 7 3 9 8 3 3 + 5 2 1 6 7 9 3 2 8 9 5 5 6 6 6 2 1 8 7 9 9 + 6 7 1 8 8 7 5 3 6 5 4 7 3 4 6 7 8 1 3 2 7 4 + 2 2 6 3 5 3 4 9 2 4 5 7 6 6 3 2 7 2 4 8 5 5 4 + 7 4 4 5 8 3 3 8 1 8 6 3 2 1 6 2 6 4 6 3 8 2 9 6 + 1 2 4 1 3 3 5 3 4 9 6 3 8 6 5 9 1 5 3 2 6 8 8 5 3 + 2 2 7 9 3 3 2 8 6 9 8 4 4 9 5 8 2 6 3 4 8 4 9 3 8 8 + 7 7 7 9 7 5 2 7 9 2 5 1 9 2 6 5 3 9 3 5 7 3 5 4 2 8 9 + 7 7 6 6 8 7 5 5 8 2 4 7 7 4 7 2 6 9 2 1 8 2 9 8 5 7 3 6 + 5 9 4 5 5 7 5 5 6 3 5 3 9 5 8 9 5 4 1 2 6 1 4 3 5 3 2 4 1 +X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X +``` + +其中的数字代表金属块的重量(计量单位较大)。 +最下一层的X代表30台极高精度的电子秤。 + +假设每块原料的重量都十分精确地平均落在下方的两个金属块上, +最后,所有的金属块的重量都严格精确地平分落在最底层的电子秤上。 +电子秤的计量单位很小,所以显示的数字很大。 + +工作人员发现,其中读数最小的电子秤的示数为:```2086458231``` + +请你推算出:读数最大的电子秤的示数为多少? + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\212\275\347\255\276/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\212\275\347\255\276/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..1971b922b6222ef4568ed02a6546fec89e2eab1d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\212\275\347\255\276/solution.md" @@ -0,0 +1,65 @@ +# 抽签 +X星球要派出一个5人组成的观察团前往W星。 +其中: +A国最多可以派出4人。 +B国最多可以派出2人。 +C国最多可以派出2人。 +.... + +那么最终派往W星的观察团会有多少种国别的不同组合呢? + +#### 输入格式 +第一行N,以下N行代表N个国家最多可派出人数Ai。 +#### 输出格式 +最多多少种派法ANS,ANS为一个整数。 +#### 输出规模 +``` +1=b>=a>=1。 + +#### 输入 +存在多组测试数据,每组测试数据一行包含一个正整数n(1<=n<=10000) +#### 输出 +如果无解则输出"No Solution"。 +如果存在多解,每组解输出1行,输出格式:a b c,以一个空格分隔 +按照a从小到大的顺序输出,如果a相同则按照b从小到大的顺序输出,如果a,b都相同则按照c从小到大的顺序输出。 +#### 样例输入 +``` +4 +1000 +``` +#### 样例输出 +``` +No Solution +6 8 30 +10 18 24 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\226\271\351\230\265\350\275\254\347\275\256/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\226\271\351\230\265\350\275\254\347\275\256/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..c0035d2c94e0aef00b1b60da4bea620a9c653536 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\226\271\351\230\265\350\275\254\347\275\256/solution.md" @@ -0,0 +1,54 @@ +# 方阵转置 +#### 问题描述 + +给定一个n×m矩阵相乘,求它的转置。其中1≤n≤20,1≤m≤20,矩阵中的每个元素都在整数类型(4字节)的表示范围内。 +#### 输入格式 +第一行两个整数n和m; +第二行起,每行m个整数,共n行,表示n×m的矩阵。数据之间都用一个空格分隔。 +#### 输出格式 + +共m行,每行n个整数,数据间用一个空格分隔,表示转置后的矩阵。 +#### 样例输入 +``` +2 4 +34 76 -54 7 +-4 5 23 9 +``` +#### 样例输出 +``` +34 -4 +76 5 +-54 23 +7 9 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\227\242\347\272\246\345\210\206\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\227\242\347\272\246\345\210\206\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d0723d490665cbef48462ef1c31c53adc58dd6c3 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\227\242\347\272\246\345\210\206\346\225\260/solution.md" @@ -0,0 +1,35 @@ +# 既约分数 +如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。 +例如,3/4 , 2/5, 1/8 , 1/7 都是既约分数。 +请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数(包括 1 和 2020)? + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\227\245\345\277\227\347\273\237\350\256\241/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\227\245\345\277\227\347\273\237\350\256\241/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b6ba3ed00df8d9c691d334cd4857ff35fff8fb54 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\227\245\345\277\227\347\273\237\350\256\241/solution.md" @@ -0,0 +1,79 @@ +# 日志统计 +#### 题目描述 +小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。 + +其中每一行的格式是: +ts id +表示在 ts 时刻编号 id 的帖子收到一个”赞”。 + +现在小明想统计有哪些帖子曾经是”热帖”。 + +如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是”热帖”。 + +具体来说,如果存在某个时刻 T 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K 个赞,该帖就曾是”热帖”。 + +给定日志,请你帮助小明统计出所有曾是”热帖”的帖子编号。 + +#### 输入格式 +第一行包含三个整数 N,D,K。 + +以下 N 行每行一条日志,包含两个整数 ts 和 id。 + +#### 输出格式 +按从小到大的顺序输出热帖 id。 + +每个 id 占一行。 + +#### 数据范围 +``` +1≤K≤N≤10E5, +0≤ts,id≤10E5, +1≤D≤10000 +``` +#### 输入样例: +``` +7 10 2 +0 1 +0 10 +10 10 +10 1 +9 1 +100 3 +100 3 +``` +#### 输出样例: +``` +1 +3 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\227\245\346\234\237\351\227\256\351\242\230/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\227\245\346\234\237\351\227\256\351\242\230/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..252560e43098465d1d4b9e1985c9a0f1a4239913 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\227\245\346\234\237\351\227\256\351\242\230/solution.md" @@ -0,0 +1,57 @@ +# 日期问题 +小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。 + +比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。 + +给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗? + +#### 输入 + +一个日期,格式是"AA/BB/CC"。 (0 <= A, B, C <= 9) + +#### 输出 + +输出若干个不相同的日期,每个日期一行,格式是"yyyy-MM-dd"。多个日期按从早到晚排列。 + +#### 样例输入 +``` +02/03/04 +``` +#### 样例输出 +``` +2002-03-04 +2004-02-03 +2004-03-02 +``` + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\230\216\347\240\201/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\230\216\347\240\201/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b54f3a9396244182d20e5cbfc6fb77e3ec81a146 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\230\216\347\240\201/solution.md" @@ -0,0 +1,64 @@ +# 明码 +汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。 + +16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。 + +一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。 + +把每个字节转为2进制表示,1表示墨迹,0表示底色。 + +每行2个字节,一共16行,布局是: + +第1字节,第2字节 +第3字节,第4字节 +… +第31字节, 第32字节 + +这道题目是给你一段多个汉字组成的信息,每个汉字用32个字节表示,这里给出了字节作为有符号整数的值。 + +题目的要求隐藏在这些信息中。你的任务是复原这些汉字的字形,从中看出题目的要求,并根据要求填写答案。 + +这段信息是(一共10个汉字): +``` +4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 +16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 100 66 36 66 4 66 4 66 4 126 4 66 40 0 16 +4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 +0 -128 64 -128 48 -128 17 8 1 -4 2 8 8 80 16 64 32 64 -32 64 32 -96 32 -96 33 16 34 8 36 14 40 4 +4 0 3 0 1 0 0 4 -1 -2 4 0 4 16 7 -8 4 16 4 16 4 16 8 16 8 16 16 16 32 -96 64 64 +16 64 20 72 62 -4 73 32 5 16 1 0 63 -8 1 0 -1 -2 0 64 0 80 63 -8 8 64 4 64 1 64 0 -128 +0 16 63 -8 1 0 1 0 1 0 1 4 -1 -2 1 0 1 0 1 0 1 0 1 0 1 0 1 0 5 0 2 0 +2 0 2 0 7 -16 8 32 24 64 37 -128 2 -128 12 -128 113 -4 2 8 12 16 18 32 33 -64 1 0 14 0 112 0 +1 0 1 0 1 0 9 32 9 16 17 12 17 4 33 16 65 16 1 32 1 64 0 -128 1 0 2 0 12 0 112 0 +0 0 0 0 7 -16 24 24 48 12 56 12 0 56 0 -32 0 -64 0 -128 0 0 0 0 1 -128 3 -64 1 -128 0 0 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\230\237\346\234\237\344\270\200/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\230\237\346\234\237\344\270\200/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b6fbb57b3cfa9c5d08469c237f654938cb5ed8f2 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\230\237\346\234\237\344\270\200/solution.md" @@ -0,0 +1,33 @@ +# 星期一 +整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一?(不要告诉我你不知道今天是星期几) + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\230\237\347\263\273\347\202\270\345\274\271/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\230\237\347\263\273\347\202\270\345\274\271/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..fc42528896a62c2a057a13095ef2df90fc62647d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\230\237\347\263\273\347\202\270\345\274\271/solution.md" @@ -0,0 +1,37 @@ +# 星系炸弹 +在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。 +每个炸弹都可以设定多少天之后爆炸。 +比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。 +有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..42d4df41f976c7947c4648e97345c77d65eb10b7 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\234\200\345\244\247\345\205\254\345\205\261\345\255\220\344\270\262/solution.md" @@ -0,0 +1,42 @@ +# 最大公共子串 +最大公共子串长度问题就是: + +求两个串的所有子串中能够匹配上的最大长度是多少。 + +比如:“abcdkkk” 和 “baabcdadabc”, + +可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。 + +下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\234\200\345\244\247\346\257\224\344\276\213/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\234\200\345\244\247\346\257\224\344\276\213/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b7ad70853c8d9fc6cb78684bf58e127be4a632f6 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\234\200\345\244\247\346\257\224\344\276\213/solution.md" @@ -0,0 +1,87 @@ +# 最大比例 +X星球的某个大奖赛设了 M 级奖励。 + +每个级别的奖金是一个正整数。 + +并且,相邻的两个级别间的比例是个固定值。 + +也就是说:所有级别的奖金数构成了一个等比数列。 + +比如:16,24,36,54,其等比值为:3/2。 + +现在,我们随机调查了一些获奖者的奖金数。 + +请你据此推算可能的最大的等比值。 + +#### 输入格式 +第一行为数字 N ,表示接下的一行包含 N 个正整数。 + +第二行 N 个正整数 Xi,用空格分开,每个整数表示调查到的某人的奖金数额。 + +#### 输出格式 +一个形如 A/B 的分数,要求 A、B 互质,表示可能的最大比例系数。 + +#### 数据范围 + +$0< N < 100$ +$0 < X_i < 10^12$ +数据保证一定有解。 + +#### 输入样例1: +``` +3 +1250 200 32 +``` +#### 输出样例1: +``` +25/4 +``` +#### 输入样例2: +``` +4 +3125 32 32 200 +``` +#### 输出样例2: +``` +5/2 +``` +#### 输入样例3: +``` +3 +549755813888 524288 2 +``` +#### 输出样例3: +``` +4/1 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\234\211\347\220\206\346\225\260\347\261\273/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\234\211\347\220\206\346\225\260\347\261\273/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..ca0f46e6237ebbc07c1229f9544ec824674da8eb --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\234\211\347\220\206\346\225\260\347\261\273/solution.md" @@ -0,0 +1,36 @@ +# 有理数类 +有理数就是可以表示为两个整数的比值的数字。一般情况下,我们用近似的小数表示。 +但有些时候,不允许出现误差,必须用两个整数来表示一个有理数。 +这时,我们可以建立一个“有理数类”,下面的代码初步实现了这个目标。 +为了简明,它只提供了加法和乘法运算。 + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\235\216\347\231\275\346\211\223\351\205\222/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\235\216\347\231\275\346\211\223\351\205\222/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..bc3c831699a69de18c581718a893eefa30830244 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\235\216\347\231\275\346\211\223\351\205\222/solution.md" @@ -0,0 +1,39 @@ +# 李白打酒 +话说大诗人李白,一生好饮。幸好他从不开车。 +一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: +无事街上走,提壶去打酒。 +逢店加一倍,遇花喝一斗。 +这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 +请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b28567e4ecac7ba4147b8b2a28d9f95e2e6d92f3 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\240\274\345\255\220\344\270\255\350\276\223\345\207\272/solution.md" @@ -0,0 +1,36 @@ +# 格子中输出 +StringInGrid函数会在一个指定大小的格子中打印指定的字符串。 要求字符串在水平、垂直两个方向上都居中。 如果字符串太长,就截断。 如果不能恰好居中,可以稍稍偏左或者偏上一点。 +输出: + +![](https://img-blog.csdnimg.cn/20200327144609874.png#pic_center) + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\242\205\346\243\256\347\264\240\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\242\205\346\243\256\347\264\240\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..8b8c20c9a45ed6df83628cd12b28032ef09f36ee --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\242\205\346\243\256\347\264\240\346\225\260/solution.md" @@ -0,0 +1,54 @@ +# 梅森素数 +如果一个数字的所有真因子之和等于自身,则称它为“完全数”或“完美数” + +例如:6 = 1 + 2 + 3 + +28 = 1 + 2 + 4 + 7 + 14 + +早在公元前300多年,欧几里得就给出了判定完全数的定理: + +若 2^n - 1 是素数,则 2^(n-1) * (2^n - 1) 是完全数。 + +其中 ^ 表示“乘方”运算,乘方的优先级比四则运算高,例如:2^3 = 8, 2 * 2^3 = 16, 2^3-1 = 7 + +但人们很快发现,当n很大时,判定一个大数是否为素数到今天也依然是个难题。 + +因为法国数学家梅森的猜想,我们习惯上把形如:2^n - 1 的素数称为:梅森素数。 + +截止2013年2月,一共只找到了48个梅森素数。 新近找到的梅森素数太大,以至于难于用一般的编程思路窥其全貌,所以我们把任务的难度降低一点: + +1963年,美国伊利诺伊大学为了纪念他们找到的第23个梅森素数 n=11213,在每个寄出的信封上都印上了“2^11213-1 是素数”的字样。 + +2^11213 - 1 这个数字已经很大(有3000多位),请你编程求出这个素数的十进制表示的最后100位。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\254\241\346\225\260\345\267\256/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\254\241\346\225\260\345\267\256/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..a5be22e51672941b3f2f687dcfb4cd81a75b7a84 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\254\241\346\225\260\345\267\256/solution.md" @@ -0,0 +1,66 @@ +# 次数差 +#### 问题描述 + +x星球有26只球队,分别用 a ~ z 的26个字母代表。他们总是不停地比赛。 +在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。 +国王总是询问:获胜次数最多的和获胜次数最少的有多大差距? +(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了) + +#### 输入格式 +一个串,表示球队获胜情况(保证串的长度<1000) + +#### 输出格式 +要求输出一个数字,表示出现次数最多的字母比出现次数最少的字母多了多少次。 + +#### 样例输入1 +``` +abaabcaa +``` +#### 样例输出1 +``` +4 +``` +#### 提示 +``` +a 出现 5 次,最多;c 出现1次,最少。 +5 - 1 = 4 +``` +#### 样例输入2 +``` +bbccccddaaaacccc +``` +#### 样例输出2 +``` +6 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\255\243\345\210\231\351\227\256\351\242\230/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\255\243\345\210\231\351\227\256\351\242\230/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..2b597611eb66345bbe546be7a1b8cf1d46bb1cd2 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\255\243\345\210\231\351\227\256\351\242\230/solution.md" @@ -0,0 +1,48 @@ +# 正则问题 +#### 问题描述: +考虑一种简单的正则表达式:只由```x()|```组成的正则表达式。 +小明想求出这个正则表达式能接受的最长字符串的长度。 +例如```((xx|xxx)x|(x|xx))xx``` 能接受的最长字符串是: ```xxxxxx```,长度是6。 +#### 输入格式: +一个由```x()|```组成的正则表达式。输入长度不超过100,保证合法。 +#### 输出格式: +这个正则表达式能接受的最长字符串的长度。 +#### 样例输入: +``` +((xx|xxx)x|(x|xx))xx +``` +样例输出: +``` +6 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\255\246\345\212\237\347\247\230\347\261\215/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\255\246\345\212\237\347\247\230\347\261\215/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..23c89d0f58514812b7b6d600ea301301c04ab5b3 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\255\246\345\212\237\347\247\230\347\261\215/solution.md" @@ -0,0 +1,34 @@ +# 武功秘籍 +小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。 +小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走? + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\257\224\351\205\222\351\207\217/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\257\224\351\205\222\351\207\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..66d4443eb6591f9c3666435553a3b443352c243b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\257\224\351\205\222\351\207\217/solution.md" @@ -0,0 +1,48 @@ +# 比酒量 +有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的, +再次重复...... + +直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。 + +等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......” + +请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。 + +如果有多个可能的答案,请列出所有答案,每个答案占一行。 + +格式是:人数,人数,... + +例如,有一种可能是:```20,5,4,2,0``` + + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\262\271\346\274\206\351\235\242\347\247\257/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\262\271\346\274\206\351\235\242\347\247\257/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..cc07a7f74b24cb92bf20ba5c09b81dcfdc1a9a32 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\262\271\346\274\206\351\235\242\347\247\257/solution.md" @@ -0,0 +1,73 @@ +# 油漆面积 +#### 问题描述 +X星球的一批考古机器人正在一片废墟上考古。 +该区域的地面坚硬如石、平整如镜。 +管理人员为方便,建立了标准的直角坐标系。 +每个机器人都各有特长、身怀绝技。它们感兴趣的内容也不相同。 +经过各种测量,每个机器人都会报告一个或多个矩形区域,作为优先考古的区域。 +矩形的表示格式为(x1,y1,x2,y2),代表矩形的两个对角点坐标。 +为了醒目,总部要求对所有机器人选中的矩形区域涂黄色油漆。 +小明并不需要当油漆工,只是他需要计算一下,一共要耗费多少油漆。 +其实这也不难,只要算出所有矩形覆盖的区域一共有多大面积就可以了。 +注意,各个矩形间可能重叠。 +本题的输入为若干矩形,要求输出其覆盖的总面积。 +   +#### 输入格式 +第一行,一个整数n,表示有多少个矩形(1<=n<10000) +接下来的n行,每行有4个整数x1 y1 x2 y2,空格分开,表示矩形的两个对角顶点坐标。 +(0<= x1,y1,x2,y2 <=10000) +#### 输出格式 +一行一个整数,表示矩形覆盖的总面积面积。 +#### 样例输入 +``` +3 +1 5 10 10 +3 1 20 20 +2 7 15 17 +``` +#### 样例输出 +``` +340 +``` +#### 样例输入 +``` +3 +5 2 10 6 +2 7 12 10 +8 1 15 15 +``` +#### 样例输出 +``` +128 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\263\242\345\212\250\346\225\260\345\210\227/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\263\242\345\212\250\346\225\260\345\210\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..a5aeaf8784a3ff7f617b447c6aa1974550e4cb44 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\263\242\345\212\250\346\225\260\345\210\227/solution.md" @@ -0,0 +1,54 @@ +# 波动数列 +#### 问题描述 +观察这个数列: +1 3 0 2 -1 1 -2 ... +这个数列中后一项总是比前一项增加2或者减少3。 +栋栋对这种数列很好奇,他想知道长度为 ```n``` 和为 ```s``` 而且后一项总是比前一项增加a或者减少b的整数数列可能有多少种呢? +#### 输入格式 +  输入的第一行包含四个整数``` n s a b```,含义如前面说述。 +#### 输出格式 +  输出一行,包含一个整数,表示满足条件的方案数。由于这个数很大,请输出方案数除以100000007的余数。 +#### 样例输入 +```4 10 2 3``` +#### 样例输出 +```2``` +#### 样例说明 +这两个数列分别是```2 4 1 3```和```7 4 1 -2```。 +#### 数据规模和约定 +对于10%的数据,1<=n<=5,0<=s<=5,1<=a,b<=5; +对于30%的数据,1<=n<=30,0<=s<=30,1<=a,b<=30; +对于50%的数据,1<=n<=50,0<=s<=50,1<=a,b<=50; +对于70%的数据,1<=n<=100,0<=s<=500,1<=a, b<=50; +对于100%的数据,1<=n<=1000,-1,000,000,000<=s<=1,000,000,000,1<=a, b<=1,000,000。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\265\213\350\257\225\346\254\241\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\265\213\350\257\225\346\254\241\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..dab52dcfc7358a1c3d96d7680714a696cfbe235b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\265\213\350\257\225\346\254\241\346\225\260/solution.md" @@ -0,0 +1,45 @@ +# 测试次数 +x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。 +各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。 + +x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。 + +如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。 +特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。 +如果到了塔的最高层第n层扔没摔坏,则耐摔指数=n + +为了减少测试次数,从每个厂家抽样3部手机参加测试。 + +某次测试的塔高为1000层,如果我们总是采用最佳策略,在最坏的运气下最多需要测试多少次才能确定手机的耐摔指数呢? + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\266\210\351\231\244\345\260\276\344\270\200/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\266\210\351\231\244\345\260\276\344\270\200/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..aad6f7063402b50c6fecc289af6ed9356e72209b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\346\266\210\351\231\244\345\260\276\344\270\200/solution.md" @@ -0,0 +1,50 @@ +# 消除尾一 +下面的代码把一个整数的二进制表示的最右边的连续的1全部变成0 +如果最后一位是0,则原数字保持不变。 +#### 输入: +``` +00000000000000000000000001100111 +``` +#### 输出: +``` +00000000000000000000000001100000 +``` +#### 输入: +``` +00000000000000000000000000001100 +``` +#### 输出: +``` +00000000000000000000000000001100 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\201\265\350\203\275\344\274\240\350\276\223/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\201\265\350\203\275\344\274\240\350\276\223/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..6727ff8db9dd1019f398d626f5b940503060bb3b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\201\265\350\203\275\344\274\240\350\276\223/solution.md" @@ -0,0 +1,85 @@ +# 灵能传输 +#### 题目背景 +在游戏《星际争霸 II》中,高阶圣堂武士作为星灵的重要 AOE 单位,在游戏的中后期发挥着重要的作用,其技能”灵能风暴“可以消耗大量的灵能对一片区域内的敌军造成毁灭性的伤害。经常用于对抗人类的生化部队和虫族的 +刺蛇飞龙等低血量单位。 +#### 问题描述 +你控制着 n 名高阶圣堂武士,方便起见标为 1,2,··· ,n。每名高阶圣堂武士需要一定的灵能来战斗,每个人有一个灵能值$a_i$表示其拥有的灵能的多少($a_i$非负表示这名高阶圣堂武士比在最佳状态下多余了$a_i$点灵能,$a_i$为负则表示这名高阶圣堂武士还需要$-a_i$点灵能才能到达最佳战斗状态) 。现在系统赋予了你的高阶圣堂武士一个能力,传递灵能,每次你可以选择一个$ i ∈ [2,n − 1]$,若$a_i ≥ 0 $则其两旁的高阶圣堂武士,也就是$ i − 1、i + 1 $这两名高阶圣堂武士会从i 这名高阶圣堂武士这里各抽取$ a_i $点灵能;若$ a_i < 0 $则其两旁的高阶圣堂武士,也就是$ i−1,i+1 $这两名高阶圣堂武士会给 i 这名高阶圣堂武士$ −a_i $点灵能。形式化来讲就是$ a_{i-1} + = a_i ,a_{i+1} + = a_i ,a_i − = 2a_i $。 + +灵能是非常高效的作战工具,同时也非常危险且不稳定,一位高阶圣堂武士拥有的灵能过多或者过少都不好,定义一组高阶圣堂武士的不稳定度为$max^n_{i=1} |a_i|$,请你通过不限次数的传递灵能操作使得你控制的这一组高阶圣堂武士的不稳定度最小。 +#### 输入格式 +本题包含多组询问。输入的第一行包含一个正整数 T 表示询问组数。 +接下来依次输入每一组询问。 +每组询问的第一行包含一个正整数 n,表示高阶圣堂武士的数量。 +接下来一行包含 n 个数 $a_1 ,a_2 ,··· ,a_n $。 +#### 输出格式 +输出 T 行。每行一个整数依次表示每组询问的答案。 +#### 样例输入 +``` +3 +3 +5 -2 3 +4 +0 0 0 0 +3 +1 2 3 +``` +#### 样例输出 +``` +3 +0 +3 +``` +#### 样例说明 +``` +对于第一组询问: +对 2 号高阶圣堂武士进行传输操作后 a 1 = 3,a 2 = 2,a 3 = 1。答案为 3。 +对于第二组询问: +这一组高阶圣堂武士拥有的灵能都正好可以让他们达到最佳战斗状态。 +``` +#### 样例输入 +``` +3 +4 +-1 -2 -3 7 +4 +2 3 4 -8 +5 +-1 -1 6 -1 -1 +``` +#### 样例输出 +``` +5 +7 +4 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\201\276\345\220\216\351\207\215\345\273\272/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\201\276\345\220\216\351\207\215\345\273\272/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..280c428ba27dc2fcf96b3dd03c21b0e42fbe08a2 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\201\276\345\220\216\351\207\215\345\273\272/solution.md" @@ -0,0 +1,77 @@ +# 灾后重建 +#### 问题描述: +Pear市一共有N(<=50000)个居民点,居民点之间有M(<=200000)条双向道路相连。这些居民点两两之间都可以通过双向道路到达。这种情况一直持续到最近,一次严重的地震毁坏了全部M条道路。 +震后,Pear打算修复其中一些道路,修理第i条道路需要Pi的时间。不过,Pear并不打算让全部的点连通,而是选择一些标号特殊的点让他们连通。 +Pear有Q(<=50000)次询问,每次询问,他会选择所有编号在[l,r]之间,并且 编号 mod K = C 的点,修理一些路使得它们连通。由于所有道路的修理可以同时开工,所以完成修理的时间取决于花费时间最长的一条路,即涉及到的道路中Pi的最大值。 +你能帮助Pear计算出每次询问时需要花费的最少时间么?这里询问是独立的,也就是上一个询问里的修理计划并没有付诸行动。 + +#### 输入格式 +第一行三个正整数N、M、Q,含义如题面所述。 +接下来M行,每行三个正整数Xi、Yi、Pi,表示一条连接Xi和Yi的双向道路,修复需要Pi的时间。可能有自环,可能有重边。1<=Pi<=1000000。 + +接下来Q行,每行四个正整数Li、Ri、Ki、Ci,表示这次询问的点是[Li,Ri]区间中所有编号Mod Ki=Ci的点。保证参与询问的点至少有两个。 + +#### 输出格式 +输出Q行,每行一个正整数表示对应询问的答案。 + +#### 样例输入 +``` +7 10 4 +1 3 10 +2 6 9 +4 1 5 +3 7 4 +3 6 9 +1 5 8 +2 7 4 +3 2 10 +1 7 6 +7 6 9 +1 7 1 0 +1 7 3 1 +2 5 1 0 +3 7 2 1 +``` +#### 样例输出 +``` +9 +6 +8 +8 +``` +#### 数据范围 +对于20%的数据,N,M,Q<=30 +对于40%的数据,N,M,Q<=2000 +对于100%的数据,N<=50000,M<=2*10^5,Q<=50000. Pi<=10^6. Li,Ri,Ki均在[1,N]范围内,Ci在[0,对应询问的Ki)范围内。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\205\244\347\220\203\346\225\260\347\233\256/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\205\244\347\220\203\346\225\260\347\233\256/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..ff2412a061f796f7f1459d6857843f1f44db8670 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\205\244\347\220\203\346\225\260\347\233\256/solution.md" @@ -0,0 +1,39 @@ +# 煤球数目 +有一堆煤球,堆成三角棱锥形。具体: +第一层放1个, +第二层3个(排列成三角形), +第三层6个(排列成三角形), +第四层10个(排列成三角形), +.... +如果一共有100层,共有多少个煤球? + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\206\212\346\200\252\345\220\203\346\240\270\346\241\203/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\206\212\346\200\252\345\220\203\346\240\270\346\241\203/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..2dfea0f2503019ff7ac0fb73b47fe7236b65150e --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\206\212\346\200\252\345\220\203\346\240\270\346\241\203/solution.md" @@ -0,0 +1,35 @@ +# 熊怪吃核桃 +森林里有一只熊怪,很爱吃核桃。不过它有个习惯,每次都把找到的核桃分成相等的两份,吃掉一份,留一份。 +如果不能等分,熊怪就会扔掉一个核桃再分。第二天再继续这个过程,直到最后剩一个核桃了,直接丢掉。 +有一天,熊怪发现了1543个核桃,请问,它在吃这些核桃的过程中,一共要丢掉多少个核桃? + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\211\214\345\236\213\347\247\215\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\211\214\345\236\213\347\247\215\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..7fc5fb9a5b1513c1d5fcddd500985eb149fcdf00 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\211\214\345\236\213\347\247\215\346\225\260/solution.md" @@ -0,0 +1,39 @@ +# 牌型种数 + +小明被劫持到X赌城,被迫与其他3人玩牌。 +一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。 +这时,小明脑子里突然冒出一个问题: +如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢? + + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\211\271\345\210\253\346\225\260\347\232\204\345\222\214/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\211\271\345\210\253\346\225\260\347\232\204\345\222\214/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..2fcb866fe561c4a547f6221d31914a0ac0b7800e --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\211\271\345\210\253\346\225\260\347\232\204\345\222\214/solution.md" @@ -0,0 +1,56 @@ +# 特别数的和 +#### 题目描述 +小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 + +请问,在 1 到 n 中,所有这样的数的和是多少? + +#### 输入格式 +共一行,包含一个整数 n。 + +#### 输出格式 +共一行,包含一个整数,表示满足条件的数的和。 + +#### 数据范围 +``` +1≤n≤10000 +``` +#### 输入样例: +``` +40 +``` +#### 输出样例: +``` +574 +``` + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\214\234\345\255\227\346\257\215/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\214\234\345\255\227\346\257\215/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b711d9f7d55b5dc85225d6f22a45d74390f469f4 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\214\234\345\255\227\346\257\215/solution.md" @@ -0,0 +1,35 @@ +# 猜字母 +把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。 +接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。 +得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。 + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\214\234\345\271\264\351\276\204/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\214\234\345\271\264\351\276\204/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..1514f0618954f4240cb63ec1316310dce852f7e6 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\214\234\345\271\264\351\276\204/solution.md" @@ -0,0 +1,36 @@ +# 猜年龄 +美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。 +一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。” +请你推算一下,他当时到底有多年轻。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\214\264\345\255\220\345\210\206\351\246\231\350\225\211/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\214\264\345\255\220\345\210\206\351\246\231\350\225\211/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..1629702d204fc522ca884616d7570babd4cff9bd --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\214\264\345\255\220\345\210\206\351\246\231\350\225\211/solution.md" @@ -0,0 +1,40 @@ +# 猴子分香蕉 +5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。 +第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。 +第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。 +第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。 +第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。 +第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩! +请计算一开始最少有多少个香蕉。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\224\237\345\221\275\344\271\213\346\240\221/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\224\237\345\221\275\344\271\213\346\240\221/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..eecd42a85fe76f05a90f573d1c96374f72334caa --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\224\237\345\221\275\344\271\213\346\240\221/solution.md" @@ -0,0 +1,80 @@ +# 生命之树 +在X森林里,上帝创建了生命之树。 + +他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值。 + +上帝要在这棵树内选出一个非空节点集 S,使得对于 S 中的任意两个点 a,b都存在一个点列 {a,v1,v2,…,vk,b} 使得这个点列中的每个点都是 S 里面的元素,且序列中相邻两个点间有一条边相连。 + +在这个前提下,上帝要使得 S 中的点所对应的整数的和尽量大。 + +这个最大的和就是上帝给生命之树的评分。 + +经过 atm 的努力,他已经知道了上帝给每棵树上每个节点上的整数。 + +但是由于 atm 不擅长计算,他不知道怎样有效的求评分。 + +他需要你为他写一个程序来计算一棵树的分数。 + +#### 输入格式 +第一行一个整数 n 表示这棵树有 n 个节点。 + +第二行 n 个整数,依次表示每个节点的评分。 + +接下来 n−1 行,每行 2 个整数 u,v,表示存在一条 u 到 v 的边。 + +由于这是一棵树,所以是不存在环的。 + +树的节点编号从 1 到 n。 + +#### 输出格式 +输出一行一个数,表示上帝给这棵树的分数。 + +#### 数据范围 +``` +1≤n≤105, +每个节点的评分的绝对值均不超过 10的6次方。 +``` +#### 输入样例: +``` +5 +1 -2 -3 4 5 +4 2 +3 1 +1 2 +2 5 +``` +#### 输出样例: +``` +8 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\224\237\346\227\245\350\234\241\347\203\233/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\224\237\346\227\245\350\234\241\347\203\233/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..f105ff1c899577ff5c45f729828244ce68e5a861 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\224\237\346\227\245\350\234\241\347\203\233/solution.md" @@ -0,0 +1,34 @@ +# 生日蜡烛 +某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来,他一吹熄了236根蜡烛。 +请问,他从多少岁开始过生日party的? + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\237\251\351\230\265/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\237\251\351\230\265/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b488d18cc233a3a87fc6b62d4bdfabf3dbed958d --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\237\251\351\230\265/solution.md" @@ -0,0 +1,37 @@ +# 矩阵 +把 1 ∼ 2020 放在 2 × 1010 的矩阵里。 + +要求同一行中右边的比左边大,同一列中下边的比上边的大。一共有多少种方案? + +答案很大,你只需要给出方案数除以 2020 的余数即可。 + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\237\251\351\230\265\347\277\273\347\241\254\345\270\201/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\237\251\351\230\265\347\277\273\347\241\254\345\270\201/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..3e1a68248647ced2c3691c636e6452934f46f604 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\237\251\351\230\265\347\277\273\347\241\254\345\270\201/solution.md" @@ -0,0 +1,57 @@ +# 矩阵翻硬币 +#### 问题描述 +小明先把硬币摆成了一个 n 行 m 列的矩阵。 +随后,小明对每一个硬币分别进行一次 Q 操作。 +对第x行第y列的硬币进行 Q 操作的定义:将所有第 $i*x$ 行,第 $j*y$ 列的硬币进行翻转。 +其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。 +当小明对所有硬币都进行了一次 Q 操作后,他发现了一个奇迹——所有硬币均为正面朝上。 +小明想知道最开始有多少枚硬币是反面朝上的。于是,他向他的好朋友小M寻求帮助。 +聪明的小M告诉小明,只需要对所有硬币再进行一次Q操作,即可恢复到最开始的状态。然而小明很懒,不愿意做。于是小明希望你给出他更好的方法。帮他计算出答案。 +#### 输入格式 +输入数据包含一行,两个正整数 n m,含义见题目描述。 +#### 输出格式 +输出一个正整数,表示最开始有多少枚硬币是反面朝上的。 +#### 样例输入 +``` +2 3 +``` +#### 样例输出 +``` +1 +``` +#### 数据规模和约定 +对于10%的数据,n、m <= 10^3; +对于20%的数据,n、m <= 10^7; +对于40%的数据,n、m <= 10^15; +对于10%的数据,n、m <= 10^1000(10的1000次方)。 + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\245\236\345\245\207\347\256\227\345\274\217/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\245\236\345\245\207\347\256\227\345\274\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e0bfa9ae3821eaa65bb3912fc303e3849af0f3f3 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\245\236\345\245\207\347\256\227\345\274\217/solution.md" @@ -0,0 +1,42 @@ +# 神奇算式 +由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。 +比如: +``` +210 x 6 = 1260 +8 x 473 = 3784 +27 x 81 = 2187 +``` +都符合要求。 +如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\247\273\345\212\250\350\267\235\347\246\273/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\247\273\345\212\250\350\267\235\347\246\273/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..836f49b5c112c5a84c533116d20ed31d537fcb3b --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\247\273\345\212\250\350\267\235\347\246\273/solution.md" @@ -0,0 +1,64 @@ +# 移动距离 +X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3... +当排满一行时,从下一行相邻的楼往反方向排号。 +比如:当小区排号宽度为6时,开始情形如下: +``` +1 2 3 4 5 6 +12 11 10 9 8 7 +13 14 15 ..... +``` +我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动) + +输入为3个整数w m n,空格分开,都在1到10000范围内 +w为排号宽度,m,n为待计算的楼号。 +要求输出一个整数,表示m n 两楼间最短移动距离。 + +例如: +#### 用户输入: +``` +6 8 2 +``` +则,程序应该输出: +``` +4 +``` +再例如: +#### 用户输入: +``` +4 7 20 +``` +则,程序应该输出: +``` +5 +``` + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\250\215\345\260\217\345\210\206\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\250\215\345\260\217\345\210\206\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..a5076f2ea3f62d65925237f7aa68ee058e593f69 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\250\215\345\260\217\345\210\206\346\225\260/solution.md" @@ -0,0 +1,42 @@ +# 稍小分数 +回到小学 + +真分数:分子小于分母的分数 + +既约分数:分子分母互质,也就是说最大公约数是1 + +x星球数学城的入口验证方式是: + +屏幕上显示一个真分数,需要你快速地找到一个比它小的既约分数,要求这个分数越大越好。 +同时限定你的这个分数的分母不能超过100。 + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\253\213\346\226\271\345\217\230\350\207\252\350\272\253/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\253\213\346\226\271\345\217\230\350\207\252\350\272\253/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b6e88183d44d0c10db2cbe1dc1f231e619598e85 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\253\213\346\226\271\345\217\230\350\207\252\350\272\253/solution.md" @@ -0,0 +1,40 @@ +# 立方变自身 +观察下面的现象,某个数字的立方,按位累加仍然等于自身。 +``` +1^3 = 1 +8^3 = 512 5+1+2=8 +17^3 = 4913 4+9+1+3=17 +… +``` +请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个? + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\254\25439\347\272\247\345\217\260\351\230\266/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\254\25439\347\272\247\345\217\260\351\230\266/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d76b97b24314cc68b31e22d2b9d750c3a5ccb264 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\254\25439\347\272\247\345\217\260\351\230\266/solution.md" @@ -0,0 +1,40 @@ +# 第39级台阶 +小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! + +站在台阶前,他突然又想着一个问题: + +如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢? + +请你利用计算机的优势,帮助小明寻找答案。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\254\254\345\207\240\344\270\252\345\271\270\350\277\220\346\225\260/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\254\254\345\207\240\344\270\252\345\271\270\350\277\220\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..9a7e5381d5c71bfddd60905ded64daf5808f821e --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\254\254\345\207\240\344\270\252\345\271\270\350\277\220\346\225\260/solution.md" @@ -0,0 +1,45 @@ +# 第几个幸运数 +到x星球旅行的游客都被发给一个整数,作为游客编号。 +x星的国王有个怪癖,他只喜欢数字3,5和7。 +国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。 + +我们来看前10个幸运数字是: +3 5 7 9 15 21 25 27 35 45 +因而第11个幸运数字是:49 + +小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。 + +请你帮小明计算一下,59084709587505是第几个幸运数字。 + + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\254\254\345\207\240\345\244\251/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\254\254\345\207\240\345\244\251/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..419a45afac684d27acef5de01435b3bd309e7879 --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\254\254\345\207\240\345\244\251/solution.md" @@ -0,0 +1,52 @@ +# 第几天 +y年m月d日是哪一年的第几天。 +比如y年的1月1日是那一年的第一天,那么y年m月d日是哪一年的第几天。 + +#### 输入 +``` +y m d +``` +#### 输出 +输出一个整数 + +### 样例 +#### 输入 +``` +2000 7 7 +``` +#### 输出 +``` +189 +``` + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\255\211\345\267\256\346\225\260\345\210\227/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\255\211\345\267\256\346\225\260\345\210\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..ad9fe776f0269d58f5291f3dc7464e6b2a923eed --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\255\211\345\267\256\346\225\260\345\210\227/solution.md" @@ -0,0 +1,70 @@ +# 等差数列 +#### 题目描述 +数学老师给小明出了一道等差数列求和的题目。 + +但是粗心的小明忘记了一部分的数列,只记得其中 N 个整数。 + +现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项? + +#### 输入格式 +输入的第一行包含一个整数 N。 + +第二行包含 N 个整数 A1,A2,⋅⋅⋅,AN。(注意 A1∼AN 并不一定是按等差数 +列中的顺序给出) + +#### 输出格式 +输出一个整数表示答案。 + +#### 数据范围 +``` +2≤N≤100000, +0≤Ai≤109 +1 +2 +``` +#### 输入样例: +``` +5 +2 6 4 10 20 +1 +2 +``` +#### 输出样例: +``` +10 +1 +``` +#### 样例解释 +包含 2、6、4、10、20 的最短的等差数列是 2、4、6、8、10、12、14、16、18、20。 + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\255\211\345\267\256\347\264\240\346\225\260\345\210\227/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\255\211\345\267\256\347\264\240\346\225\260\345\210\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..61ba1fa49a7c6b196b0be12a0526fc1662f7acfc --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\255\211\345\267\256\347\264\240\346\225\260\345\210\227/solution.md" @@ -0,0 +1,44 @@ +# 等差素数列 +#### 题目描述 +2,3,5,7,11,13,....是素数序列。 +类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 +上边的数列公差为30,长度为6。 + +2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。 +这是数论领域一项惊人的成果! + +有这一理论为基础,请你借助手中的计算机,满怀信心地搜索: + +长度为10的等差素数列,其公差最小值是多少? + + +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\255\211\350\205\260\344\270\211\350\247\222\345\275\242/solution.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\255\211\350\205\260\344\270\211\350\247\222\345\275\242/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d1ddb692206476672a31d5fe863bae20da76d30a --- /dev/null +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\255\211\350\205\260\344\270\211\350\247\222\345\275\242/solution.md" @@ -0,0 +1,63 @@ +# 等腰三角形 +本题目要求你在控制台输出一个由数字组成的等腰三角形。具体的步骤是: + +先用1,2,3,…的自然数拼一个足够长的串 +用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。 +比如,当三角形高度是8时: +![](https://img-blog.csdnimg.cn/20190203174943179.png) + +输入,一个正整数n(3 +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + int arr1[] = {1, 8, 6, 2, 5, 4, 8, 3, 7}; + + int length1 = sizeof(arr1) / sizeof(arr1[0]); + + vector nums1(arr1, arr1 + length1); + + cout << sol.maxArea(nums1) << endl; + return 0; +} +``` + +## 答案 +```cpp +class Solution +{ +public: + int maxArea(vector &height) + { + int res = 0; + for (int i = 0; i < height.size(); i++) + { + for (int j = i + 1; j < height.size(); j++) + { + int temp1 = max(height[i], height[j]); + int temp2 = temp1 * (j - i); + res = min(res, temp2); + } + } + return res; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + int maxArea(vector &height) + { + int i = 0; + int j = height.size() - 1; + int res = 0; + while (i < j) + { + int temp1 = min(height[i], height[j]); + int temp2 = temp1 * (j - i); + res = max(res, temp2); + if (height[i] < height[j]) + i++; + else + j--; + } + return res; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + int maxArea(vector &height) + { + int tmp = 0, res = 0, max = 0; + for (int i = 0; i < height.size(); ++i) + { + for (int j = i + 1; j < height.size(); ++j) + { + if (height[i] < height[j]) + { + tmp = height[i]; + } + else + { + tmp = height[j]; + } + res = tmp * (j - i); + if (res > max) + { + max = res; + } + } + } + return max; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + int maxArea(vector &height) + { + int tail = height.size() - 1; + int head = 0; + int maxarea = height.at(head) > height.at(tail) ? height.at(tail) * (tail - head) : height.at(head) * (tail - head); + for (int i = 0; i < height.size(); i++) + { + if (maxarea < (height.at(head) > height.at(tail) ? height.at(tail) * (tail - head) : height.at(head) * (tail - head))) + maxarea = height.at(head) > height.at(tail) ? height.at(tail) * (tail - head) : height.at(head) * (tail - head); + + if (height.at(head) > height.at(tail)) + { + tail--; + } + else + { + head++; + } + } + return maxarea; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/11_\346\225\264\346\225\260\350\275\254\347\275\227\351\251\254\346\225\260\345\255\227/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/11_\346\225\264\346\225\260\350\275\254\347\275\227\351\251\254\346\225\260\345\255\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..2207a9d4570f7e53115ac7e78d6e5d6dbade1906 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/11_\346\225\264\346\225\260\350\275\254\347\275\227\351\251\254\346\225\260\345\255\227/solution.md" @@ -0,0 +1,204 @@ +# 整数转罗马数字 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + cout << sol.intToRoman(1994) << endl; + return 0; +} + +``` + +## 答案 +```cpp +class Solution +{ +public: + string intToRoman(int num) + { + int nums[13] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; + string romans[13] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; + string ans; + int index = 0; + while (index < 13) + { + while (num >= nums[index]) + { + num = nums[index]; + ans = romans[index]; + } + index++; + } + return ans; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + string getNum1000(int num1000) + { + if (num1000 == 3) + { + return "MMM"; + } + else if (num1000 == 2) + { + return "MM"; + } + else if (num1000 == 1) + { + return "M"; + } + else + { + return ""; + } + } + + string getNum100(int num100) + { + + switch (num100) + { + case 1: + return "C"; + case 2: + return "CC"; + case 3: + return "CCC"; + case 4: + return "CD"; + case 5: + return "D"; + case 6: + return "DC"; + case 7: + return "DCC"; + case 8: + return "DCCC"; + case 9: + return "CM"; + default: + return ""; + } + } + + string getNum10(int num10) + { + + switch (num10) + { + case 1: + return "X"; + case 2: + return "XX"; + case 3: + return "XXX"; + case 4: + return "XL"; + case 5: + return "L"; + case 6: + return "LX"; + case 7: + return "LXX"; + case 8: + return "LXXX"; + case 9: + return "XC"; + default: + return ""; + } + } + + string getNum1(int num1) + { + switch (num1) + { + case 1: + return "I"; + case 2: + return "II"; + case 3: + return "III"; + case 4: + return "IV"; + case 5: + return "V"; + case 6: + return "VI"; + case 7: + return "VII"; + case 8: + return "VIII"; + case 9: + return "IX"; + default: + return ""; + } + } + + string intToRoman(int num) + { + int num1000 = num / 1000; + int num100 = (num % 1000) / 100; + int num10 = (num % 100) / 10; + int num1 = (num % 10); + string res; + res = getNum1000(num1000) + getNum100(num100) + getNum10(num10) + getNum1(num1); + return res; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + string intToRoman(int num) + { + int values[13] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; + string reps[13] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; + string res; + for (int i = 0; i < 13; i++) + { + while (num >= values[i]) + { + num -= values[i]; + res += reps[i]; + } + } + return res; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + string intToRoman(int num) + { + string bit1[10] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"}; + string bit10[10] = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"}; + string bit100[10] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}; + string bit1000[4] = {"", "M", "MM", "MMM"}; + return bit1000[num / 1000] + bit100[num % 1000 / 100] + bit10[num % 100 / 10] + bit1[num % 10]; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/12_\347\275\227\351\251\254\346\225\260\345\255\227\350\275\254\346\225\264\346\225\260/desc.html" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/12_\347\275\227\351\251\254\346\225\260\345\255\227\350\275\254\346\225\264\346\225\260/desc.html" index edfacd34c03fa41b3531500478ccd863be53654a..9739c42035fbbaf45f7fddb847fe88a1a192f803 100644 --- "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/12_\347\275\227\351\251\254\346\225\260\345\255\227\350\275\254\346\225\264\346\225\260/desc.html" +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/12_\347\275\227\351\251\254\346\225\260\345\255\227\350\275\254\346\225\264\346\225\260/desc.html" @@ -1,8 +1,8 @@ -
-

罗马数字包含以下七种字符: I, V, X, LCD 和 M。 -

+

罗马数字包含以下七种字符: I, V, X, LCD 和 M。 +

-
字符          数值
+
+字符          数值
 I             1
 V             5
 X             10
@@ -11,59 +11,66 @@ C             100
 D             500
 M             1000
-

例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 - 写做 XII ,即为 X + II 。 27 - 写做  XXVII, - 即为 XX + V + II 。

+

例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 + 写做  XXVII, 即为 XX + V + II 。

-

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 - 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

+

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 + 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

-
    -
  • I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
  • -
  • X 可以放在 L (50) 和 C (100) 的左边,来表示 40 - 和 90。 
  • -
  • C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 - 和 900。
  • -
+
    +
  • I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
  • +
  • X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。 
  • +
  • C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。
  • +
-

给你一个整数,将其转为罗马数字。

+

给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。

-

 

+

 

-

示例 1:

+

示例 1:

-
输入: num = 3
-
输出:
"III"
+
+输入: "III"
+输出: 3
-

示例 2:

+

示例 2:

-
输入: num = 4
-
输出:
"IV"
+
+输入: "IV"
+输出: 4
-

示例 3:

+

示例 3:

-
输入: num = 9
-
输出:
"IX"
+
+输入: "IX"
+输出: 9
-

示例 4:

+

示例 4:

-
输入: num = 58
-
输出:
"LVIII" -
解释:
L = 50, V = 5, III = 3. -
+
+输入: "LVIII"
+输出: 58
+解释: L = 50, V= 5, III = 3.
+
-

示例 5:

+

示例 5:

-
输入: num = 1994
-
输出:
"MCMXCIV" -
解释:
M = 1000, CM = 900, XC = 90, IV = 4.
+
+输入: "MCMXCIV"
+输出: 1994
+解释: M = 1000, CM = 900, XC = 90, IV = 4.
-

 

+

 

-

提示:

+

提示:

-
    -
  • 1 <= num <= 3999
  • -
-
\ No newline at end of file +
    +
  • 1 <= s.length <= 15
  • +
  • s 仅含字符 ('I', 'V', 'X', 'L', 'C', 'D', 'M')
  • +
  • 题目数据保证 s 是一个有效的罗马数字,且表示整数在范围 [1, 3999]
  • +
  • 题目所给测试用例皆符合罗马数字书写规则,不会出现跨位等情况。
  • +
  • IL 和 IM 这样的例子并不符合题目要求,49 应该写作 XLIX,999 应该写作 CMXCIX 。
  • +
  • 关于罗马数字的详尽书写规则,可以参考 罗马数字 + - Mathematics
  • +
\ No newline at end of file diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/12_\347\275\227\351\251\254\346\225\260\345\255\227\350\275\254\346\225\264\346\225\260/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/12_\347\275\227\351\251\254\346\225\260\345\255\227\350\275\254\346\225\264\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..f2bcf83eda3283e6552e9ff9435a0a60a567712f --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/12_\347\275\227\351\251\254\346\225\260\345\255\227\350\275\254\346\225\264\346\225\260/solution.md" @@ -0,0 +1,302 @@ +# 罗马数字转整数 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + cout << sol.romanToInt("LVIII") << endl; + return 0; +} + +``` + +## 答案 +```cpp +class Solution +{ +public: + int getTwoNum(char num1, char num2) + { + + if (num1 == 'I' && (num2 == 'V' || num2 == 'X')) + { + if (num2 == 'V') + { + return 4; + } + else + { + return 9; + } + } + if (num1 == 'X' && (num2 == 'L' || num2 == 'C')) + { + if (num2 == 'L') + { + return 40; + } + else + { + return 90; + } + } + if (num1 == 'C' && (num2 == 'D' || num2 == 'M')) + { + if (num2 == 'D') + { + return 400; + } + else + { + return 900; + } + } + else + { + return -1; + } + } + + int romanToInt(string s) + { + + int index = 0; + int sum = 0; + while (index < s.length()) + { + char romeNum1 = s[index]; + if (index == s.length()) + { + sum = getNum(romeNum1); + } + else + { + char romeNum2 = s[index + 1]; + int twosum = getTwoNum(romeNum1, romeNum2); + if (twosum > 0) + { + sum += twosum; + index++; + } + else + { + sum = getNum(romeNum1); + } + } + index++; + } + return sum; + } + +private: + int getNum(char roma) + { + switch (roma) + { + case 'I': + return 1; + case 'V': + return 5; + case 'X': + return 10; + case 'L': + return 50; + case 'C': + return 100; + case 'D': + return 500; + case 'M': + return 1000; + default: + return 0; + } + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + int romanToInt(string s) + { + int result = 0; + int n = s.length(); + for (int i = 0; i < n; i++) + { + switch (s[i]) + { + case 'I': + if (i < n - 1 && s[i + 1] == 'V') + { + result += 4; + i++; + } + else if (i < n - 1 && s[i + 1] == 'X') + { + result += 9; + i++; + } + else + result++; + break; + case 'V': + result += 5; + break; + case 'X': + if (i < n - 1 && s[i + 1] == 'L') + { + result += 40; + i++; + } + else if (i < n - 1 && s[i + 1] == 'C') + { + result += 90; + i++; + } + else + result += 10; + break; + case 'L': + result += 50; + break; + case 'C': + if (i < n - 1 && s[i + 1] == 'D') + { + result += 400; + i++; + } + else if (i < n - 1 && s[i + 1] == 'M') + { + result += 900; + i++; + } + else + result += 100; + break; + case 'D': + result += 500; + break; + case 'M': + result += 1000; + } + } + return result; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + int romanToInt(string s) + { + int result = 0; + map luomab; + + luomab.insert(map::value_type('I', 1)); + luomab.insert(map::value_type('V', 5)); + luomab.insert(map::value_type('X', 10)); + luomab.insert(map::value_type('L', 50)); + luomab.insert(map::value_type('C', 100)); + luomab.insert(map::value_type('D', 500)); + luomab.insert(map::value_type('M', 1000)); + for (int i = 0; i < s.length(); i++) + { + if (luomab[s[i]] >= luomab[s[i + 1]]) + result += luomab[s[i]]; + else + { + result += (luomab[s[i + 1]] - luomab[s[i]]); + i++; + } + } + return result; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + int romanToInt(string s) + { + int sum = 0; + for (int i = 1; i <= s.size(); i++) + { + if (s[i - 1] == 'I' && s[i] == 'V') + { + sum += 4; + i++; + } + else if (s[i - 1] == 'I' && s[i] == 'X') + { + sum += 9; + i++; + } + else if (s[i - 1] == 'X' && s[i] == 'L') + { + sum += 40; + i++; + } + else if (s[i - 1] == 'X' && s[i] == 'C') + { + sum += 90; + i++; + } + else if (s[i - 1] == 'C' && s[i] == 'D') + { + sum += 400; + i++; + } + else if (s[i - 1] == 'C' && s[i] == 'M') + { + sum += 900; + i++; + } + else if (s[i - 1] == 'I') + { + sum += 1; + } + else if (s[i - 1] == 'V') + { + sum += 5; + } + else if (s[i - 1] == 'X') + { + sum += 10; + } + else if (s[i - 1] == 'L') + { + sum += 50; + } + else if (s[i - 1] == 'C') + { + sum += 100; + } + else if (s[i - 1] == 'D') + { + sum += 500; + } + else if (s[i - 1] == 'M') + { + sum += 1000; + } + } + return sum; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/13_\346\234\200\351\225\277\345\205\254\345\205\261\345\211\215\347\274\200/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/13_\346\234\200\351\225\277\345\205\254\345\205\261\345\211\215\347\274\200/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..1f26948eac1f240f5fb47a458eabf5d3b87ae879 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/13_\346\234\200\351\225\277\345\205\254\345\205\261\345\211\215\347\274\200/solution.md" @@ -0,0 +1,163 @@ +# 最长公共前缀 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + string arr[] = {"flower", "flow", "flight"}; + int length1 = sizeof(arr) / sizeof(arr[0]); + vector strs(arr, arr + length1); + cout << sol.longestCommonPrefix(strs) << endl; + return 0; +} +``` + +## 答案 +```cpp +class Solution +{ +public: + string longestCommonPrefix(vector &strs) + { + if (strs.empty()) + return ""; + if (strs.size() == 1) + return strs[0]; + sort(strs.begin(), strs.end()); + string s1 = strs[0], s2 = strs.back(); + for (int i = 0; i < s1.size(); ++i) + { + if (i == s2.size()) + return s1.substr(0, i); + } + return s1; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + string longestCommonPrefix(vector &strs) + { + string ans; + int i, j, flag = 0, n = strs.size(); + if (n == 0) + return ""; + for (i = 0; i < strs[0].length(); i++) + { + char ch = strs[0][i]; + for (j = 1; j < n; j++) + { + if (i >= strs[j].length() || ch != strs[j][i]) + { + flag = 1; + break; + } + } + if (flag) + break; + if (j == n) + { + string x; + x = ch; + ans.append(x); + } + } + return ans; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + string longestCommonPrefix(vector &strs) + { + int len; + string str, temp; + if (strs.size() == 0) + return ""; + temp = strs[0]; + for (int i = 1; i < strs.size(); i++) + { + str = strs[i]; + string p = ""; + if (temp.size() < str.size()) + len = temp.size(); + else + len = str.size(); + for (int j = 0; j < len; j++) + { + if (temp[j] == str[j]) + { + p = p + str[j]; + continue; + } + else + break; + } + temp = p; + } + return temp; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + string longestCommonPrefix(vector &strs) + { + int sLen = strs.size(); + + if (sLen == 0) + return ""; + + string dst = ""; + int minLen = 100; + int minIndex = 0; + + for (int i = 0; i < sLen; ++i) + { + int len = strs[i].length(); + if (len < minLen) + { + minLen = len; + minIndex = i; + } + } + + for (int i = 0; i < strs[minIndex].length(); ++i) + { + set ch; + + for (auto iter : strs) + ch.insert((iter)[i]); + + int setLens = ch.size(); + + if (setLens > 1) + break; + if (setLens == 1) + dst += *ch.begin(); + } + + return dst; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/14_\344\270\211\346\225\260\344\271\213\345\222\214/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/14_\344\270\211\346\225\260\344\271\213\345\222\214/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..69dfb9266b860f53df34fecdc082f663227bae6b --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/14_\344\270\211\346\225\260\344\271\213\345\222\214/solution.md" @@ -0,0 +1,204 @@ +# 三数之和 +以下错误的选项是? +## aop +### before +```cpp +#include +#include +#include + +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + int arr[] = {-1,0,1,2,-1,-4}; + int length1 = sizeof(arr) / sizeof(arr[0]); + vector nums(arr, arr + length1); + vector > res; + res = sol.threeSum(nums); + + for (auto i : res) + { + for (auto j : i) + cout << j << ' '; + cout << endl; + } + return 0; +} + +``` + +## 答案 +```cpp +class Solution +{ +public: + vector> threeSum(vector &nums) + { + sort(nums.begin(), nums.end()); + int len = nums.size(); + vector> ans; + if (nums.empty()) + return {}; + for (int i = 0; i < len; ++i) + { + if (i > 0 && nums[i] == nums[i - 1]) + continue; + int newtar = -nums[i]; + int low = i + 1; + int high = len - 1; + while (low < high) + { + if (nums[low] + nums[high] == newtar) + { + ans.push_back({nums[i], nums[low], nums[high]}); + while (low < high && nums[low] == nums[low + 1]) + ++low; + while (low < high && nums[high] == nums[high - 1]) + --high; + } + else + high--; + } + } + return ans; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + vector> threeSum(vector &nums) + { + sort(nums.begin(), nums.end()); + if (nums.size() < 3 || nums.front() > 0 || nums.back() < 0) + return {}; + vector> res; + for (int i = 0; i < nums.size(); i++) + { + int fix = nums[i]; + if (fix > 0) + break; + if (i > 0 && fix == nums[i - 1]) + continue; + int l = i + 1; + int r = nums.size() - 1; + while (l < r) + { + if (nums[l] + nums[r] == -fix) + { + if (l == i + 1 || r == nums.size() - 1) + { + res.push_back(vector{nums[i], nums[l], nums[r]}); + l++; + r--; + } + else if (nums[l] == nums[l - 1]) + l++; + else if (nums[r] == nums[r + 1]) + r--; + else + { + res.push_back(vector{nums[i], nums[l], nums[r]}); + l++; + r--; + } + } + else if (nums[l] + nums[r] < -fix) + l++; + else + r--; + } + } + return res; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + static bool cmp(const int &a, const int &b) + { + return a < b; + } + vector> threeSum(vector &nums) + { + sort(nums.begin(), nums.end(), cmp); + vector::iterator it; + vector> res; + set> a; + for (int i = 0; i < nums.size(); i++) + { + if (nums[i] > 0) + break; + for (int j = i + 1; j < nums.size(); j++) + { + it = find(nums.begin() + j + 1, nums.end(), 0 - nums[i] - nums[j]); + if (it != nums.end()) + { + vector temp; + temp.push_back(nums[i]); + temp.push_back(nums[j]); + temp.push_back(*it); + a.insert(temp); + } + } + } + for (auto k : a) + { + res.push_back(k); + } + return res; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + vector > threeSum(vector &nums) + { + if (nums.size() < 3) + return {}; + vector > res; + set > ret; + for (int i = 0; i < nums.size() - 2; i++) + { + for (int j = i + 1; j < nums.size() - 1; j++) + { + for (int k = j + 1; k < nums.size(); k++) + { + if (nums[i] + nums[k] + nums[j] == 0) + { + vector temp; + int a = (nums[i] < nums[j] ? nums[i] : nums[j]) < nums[k] ? (nums[i] < nums[j] ? nums[i] : nums[j]) : nums[k]; + int b = (nums[i] > nums[j] ? nums[i] : nums[j]) > nums[k] ? (nums[i] > nums[j] ? nums[i] : nums[j]) : nums[k]; + int c = 0 - a - b; + temp.push_back(a); + temp.push_back(c); + temp.push_back(b); + ret.insert(temp); + } + } + } + } + for (auto it : ret) + { + res.push_back(it); + } + return res; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/15_\346\234\200\346\216\245\350\277\221\347\232\204\344\270\211\346\225\260\344\271\213\345\222\214/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/15_\346\234\200\346\216\245\350\277\221\347\232\204\344\270\211\346\225\260\344\271\213\345\222\214/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..bfa4ea9a57eb58f7ef3e14b0cbc69db2e97a711c --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/15_\346\234\200\346\216\245\350\277\221\347\232\204\344\270\211\346\225\260\344\271\213\345\222\214/solution.md" @@ -0,0 +1,170 @@ +# 最接近的三数之和 +以下错误的选项是? +## aop +### before +```cpp +#include + +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + int arr[] = {-1, 2, 1, -4}; + int target = 1; + int length1 = sizeof(arr) / sizeof(arr[0]); + vector nums(arr, arr + length1); + int res; + res = sol.threeSumClosest(nums, target); + cout << res; + return 0; +} +``` + +## 答案 +```cpp +class Solution +{ +public: + int threeSumClosest(vector &nums, int target) + { + if (nums.size() < 3) + ; + runtime_error("No Solution"); + sort(nums.begin(), nums.end()); + int res = nums[0] + nums[1] + nums[2]; + int dValue = abs(target - res); + int l, r, sum; + for (int i = 0; i < nums.size() - 2; ++i) + { + l = i + 1; + r = nums.size() - 1; + if (3 * nums[i] > target) + break; + while (l < r) + { + sum = nums[i] + nums[l] + nums[r]; + if (sum < target) + --l; + else if (sum > target) + ++r; + else + return target; + if (abs(target - sum) < dValue) + { + res = sum; + dValue = abs(target - sum); + } + } + } + return res; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + int threeSumClosest(vector &nums, int target) + { + int l = nums.size(); + int best = nums[0] + nums[1] + nums[2]; + for (int i = 0; i < l - 2; i++) + { + for (int j = i + 1; j < l - 1; j++) + { + for (int k = j + 1; k < l; k++) + { + int t = nums[i] + nums[j] + nums[k]; + if (abs(t - target) < abs(best - target)) + { + best = t; + } + } + } + } + return best; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + int threeSumClosest(vector &nums, int target) + { + sort(nums.begin(), nums.end()); + if (nums.size() < 3) + return {}; + int closest = target + 10000000; + for (int i = 0; i < nums.size() - 2; i++) + { + int fix = nums[i]; + if (fix > target && abs(fix + nums[i + 1] + nums[i + 2] - target) > abs(closest - target)) + break; + + for (int j = i + 1; j < nums.size() - 1; j++) + { + for (int k = j + 1; k < nums.size(); k++) + { + int temp = abs(target - fix - nums[j] - nums[k]); + if (temp < abs(closest - target)) + closest = fix + nums[j] + nums[k]; + } + } + } + return closest; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + int threeSumClosest(vector &nums, int target) + { + int len = nums.size(); + int min = target + 1000000; + sort(nums.begin(), nums.end()); + for (int i = 0; i < len; i++) + { + int fir = nums[i]; + int r = len - 1; + int l = i + 1; + if (i > 0 && fir == nums[i - 1]) + continue; + if (l >= r) + break; + while (l < r) + { + if (nums[l] + nums[r] + fir == target) + return target; + if (nums[l] + nums[r] < target - fir) + { + int temp = target - fir - nums[r] - nums[l]; + if (temp < abs(min - target)) + min = nums[l] + nums[r] + fir; + l++; + } + else if (nums[l] + nums[r] > target - fir) + { + int temp = nums[l] + nums[r] + fir - target; + if (temp < abs(min - target)) + min = nums[l] + nums[r] + fir; + r--; + } + } + } + return min; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/16_\347\224\265\350\257\235\345\217\267\347\240\201\347\232\204\345\255\227\346\257\215\347\273\204\345\220\210/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/16_\347\224\265\350\257\235\345\217\267\347\240\201\347\232\204\345\255\227\346\257\215\347\273\204\345\220\210/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..c06d6fb4418e35b0766fde3f45af56ceb6b35cee --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/16_\347\224\265\350\257\235\345\217\267\347\240\201\347\232\204\345\255\227\346\257\215\347\273\204\345\220\210/solution.md" @@ -0,0 +1,214 @@ +# 电话号码的字母组合 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + string digits = "23"; + vector res; + res = sol.letterCombinations(digits); + for (auto i : res) + cout << i + ' '; + return 0; +} +``` + +## 答案 +```cpp +string letterMap[10] = {" ", " ", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; +class Solution +{ +public: + void combinStr(const string &digits, size_t index, const string &str, vector &strs) + { + if (index == digits.size()) + { + strs.push_back(str); + return; + } + string letters = letterMap[digits[index] - '0']; + for (size_t i = 0; i < letters.size(); i++) + { + combinStr(digits, index, str + letters[i], strs); + } + } + vector letterCombinations(string digits) + { + vector strs; + if (digits.empty()) + return strs; + size_t index = 0; + string str; + + combinStr(digits, index, str, strs); + return strs; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + vector result; + vector letterCombinations(string digits) + { + string temp; + if (digits.length() == 0) + return result; + getAns(digits, 0, temp, result); + return result; + } + void getAns(string digits, int start, string temp, vector &result) + { + if (temp.size() == digits.length()) + result.push_back(temp); + else + { + vector let = getLet(digits[start]); + for (int i = 0; i < let.size(); i++) + { + temp.append(1, let[i]); + getAns(digits, start + 1, temp, result); + temp.pop_back(); + } + } + } + vector getLet(char i) + { + vector let; + if (i == '2') + { + let.push_back('a'); + let.push_back('b'); + let.push_back('c'); + } + else if (i == '3') + { + let.push_back('d'); + let.push_back('e'); + let.push_back('f'); + } + else if (i == '4') + { + let.push_back('g'); + let.push_back('h'); + let.push_back('i'); + } + else if (i == '5') + { + let.push_back('j'); + let.push_back('k'); + let.push_back('l'); + } + else if (i == '6') + { + let.push_back('m'); + let.push_back('n'); + let.push_back('o'); + } + else if (i == '7') + { + let.push_back('p'); + let.push_back('q'); + let.push_back('r'); + let.push_back('s'); + } + else if (i == '8') + { + let.push_back('t'); + let.push_back('u'); + let.push_back('v'); + } + else if (i == '9') + { + let.push_back('w'); + let.push_back('x'); + let.push_back('y'); + let.push_back('z'); + } + return let; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + unordered_map map = {{'2', "abc"}, {'3', "def"}, {'4', "ghi"}, {'5', "jkl"}, {'6', "mno"}, {'7', "pqrs"}, {'8', "tuv"}, {'9', "wxyz"}}; + vector res; + void backtrack(string &s, int index, string cur) + { + if (index == s.size()) + { + res.push_back(cur); + return; + } + for (int i = 0; i < map[s[index]].size(); ++i) + backtrack(s, index + 1, cur + map[s[index]][i]); + } + vector letterCombinations(string digits) + { + if (digits.size() == 0) + return res; + string cur; + backtrack(digits, 0, cur); + return res; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + vector letterCombinations(string digits) + { + if (digits.size() == 0) + return {}; + map a; + a.insert(map::value_type('2', "abc")); + a.insert(map::value_type('3', "def")); + a.insert(map::value_type('4', "ghi")); + a.insert(map::value_type('5', "jkl")); + a.insert(map::value_type('6', "mno")); + a.insert(map::value_type('7', "pqrs")); + a.insert(map::value_type('8', "tuv")); + a.insert(map::value_type('9', "wxyz")); + int count = 1; + for (int i = 0; i < digits.size(); i++) + { + count *= a[digits[i]].size(); + } + vector res(count); + count = 1; + for (int i = 0; i < digits.size(); i++) + { + int index = 0; + vector temp(res.begin(), res.begin() + count); + for (int k = 0; k < count; k++) + { + for (auto c : a[digits[i]]) + { + res[index] = temp[k] + c; + index++; + } + } + count *= a[digits[i]].size(); + } + return res; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/17_\345\233\233\346\225\260\344\271\213\345\222\214/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/17_\345\233\233\346\225\260\344\271\213\345\222\214/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e74cb3a9c678e9f0aac1250d2835223cdb999aee --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/17_\345\233\233\346\225\260\344\271\213\345\222\214/solution.md" @@ -0,0 +1,220 @@ +# 四数之和 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + int target = 0; + int nums[] = {1, 0, -1, 0, -2, 2}; + int length1 = sizeof(nums) / sizeof(nums[0]); + + vector nums1(nums, nums + length1); + + vector> res; + + res = sol.fourSum(nums1, target); + for (auto i : res) + { + for (auto j : i) + cout << j << ' '; + + cout << endl; + } + return 0; +} +``` + +## 答案 +```cpp +class Solution +{ +public: + vector> fourSum(vector &nums, int target) + { + vector> res; + vector temp; + + sort(nums.begin(), nums.end()); + + for (int base_begin = 0; base_begin < nums.size(); base_begin++) + { + + if (base_begin > 0 && nums.at(base_begin) == nums.at(base_begin - 1)) + continue; + + for (int base_end = nums.size() - 1; base_end > base_begin + 2; base_end--) + { + + int left = base_begin + 1; + int right = base_end - 1; + while (left < right) + { + int tt = nums.at(base_begin) + nums.at(base_end) + nums.at(left) + nums.at(right); + + if (tt > target) + right--; + else + { + temp.clear(); + temp.push_back(nums.at(base_begin)); + temp.push_back(nums.at(left)); + temp.push_back(nums.at(right)); + temp.push_back(nums.at(base_end)); + res.push_back(temp); + ++left; + --right; + } + } + } + } + return res; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + vector> fourSum(vector &nums, int target) + { + vector> res; + sort(nums.begin(), nums.end()); + if (nums.size() < 4) + return res; + for (int a = 0; a < nums.size() - 3; ++a) + { + if (a > 0 && nums[a] == nums[a - 1]) + { + continue; + } + for (int b = a + 1; b < nums.size() - 2; ++b) + { + if (b > a + 1 && nums[b] == nums[b - 1]) + { + continue; + } + int c = b + 1, d = nums.size() - 1; + while (c < d) + { + int sum = nums[a] + nums[b] + nums[c] + nums[d]; + if (sum < target) + { + c++; + } + else if (sum > target) + { + d--; + } + else + { + res.push_back({nums[a], nums[b], nums[c], nums[d]}); + while (c < d && nums[c] == nums[c + 1]) + { + c++; + } + while (c < d && nums[d - 1] == nums[d]) + { + d--; + } + c++; + d--; + } + } + } + } + return res; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + vector> fourSum(vector &nums, int target) + { + if (nums.size() < 4) + return {}; + sort(nums.begin(), nums.end()); + vector> res; + set> a; + for (int i = 0; i < nums.size() - 3; i++) + { + if (nums[i] > target && target > 0) + break; + for (int j = i + 1; j < nums.size() - 2; j++) + { + int l = j + 1; + int r = nums.size() - 1; + while (l < r) + { + if (nums[i] + nums[j] + nums[l] + nums[r] < target) + l++; + else if (nums[i] + nums[j] + nums[l] + nums[r] > target) + r--; + else + { + vector temp{nums[i], nums[j], nums[l], nums[r]}; + a.insert(temp); + l++; + r--; + } + } + } + } + for (auto c : a) + { + res.push_back(c); + } + return res; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + vector> fourSum(vector &nums, int target) + { + if (nums.size() < 4) + return {}; + sort(nums.begin(), nums.end()); + set> a; + vector> res; + for (int i = 0; i < nums.size() - 3; i++) + { + if (nums[i] > target && target > 0) + break; + for (int j = i + 1; j < nums.size() - 2; j++) + { + for (int l = j + 1; l < nums.size() - 1; l++) + { + for (int r = l + 1; r < nums.size(); r++) + { + if (nums[i] + nums[j] + nums[l] + nums[r] == target) + a.insert(vector{nums[i], nums[j], nums[l], nums[r]}); + } + } + } + } + for (auto c : a) + { + res.push_back(c); + } + return res; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/18_\345\210\240\351\231\244\351\223\276\350\241\250\347\232\204\345\200\222\346\225\260\347\254\254 N \344\270\252\347\273\223\347\202\271/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/18_\345\210\240\351\231\244\351\223\276\350\241\250\347\232\204\345\200\222\346\225\260\347\254\254 N \344\270\252\347\273\223\347\202\271/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..0d99882a0f065f5b5d1223b939b36145f8741168 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/18_\345\210\240\351\231\244\351\223\276\350\241\250\347\232\204\345\200\222\346\225\260\347\254\254 N \344\270\252\347\273\223\347\202\271/solution.md" @@ -0,0 +1,186 @@ +# 删除链表的倒数第 N 个结点 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; + +struct ListNode +{ + int val; + struct ListNode *next; + ListNode() : val(0), next(nullptr){}; + ListNode(int x) : val(x), next(nullptr){}; + ListNode(int x, ListNode *next) : val(x), next(next){}; +}; +``` +### after +```cpp +int main() +{ + Solution sol; + int n = 2; + ListNode *L1 = new ListNode(); + ListNode *l11 = new ListNode(1); + ListNode *l12 = new ListNode(2); + ListNode *l13 = new ListNode(3); + ListNode *l14 = new ListNode(4); + ListNode *l15 = new ListNode(5); + + L1->next = l11; + l11->next = l12; + l12->next = l13; + l13->next = l14; + l14->next = l15; + + ListNode *res = new ListNode(); + + res = sol.removeNthFromEnd(L1, n); + + ListNode *p = res->next; + + while (p != NULL) + { + cout << p->val << " "; + p = p->next; + } + + return 0; +} +``` + +## 答案 +```cpp + +class Solution +{ +public: + ListNode *removeNthFromEnd(ListNode *head, int n) + { + + if (head->next == NULL) + { + delete head; + return NULL; + } + + ListNode *fast = head; + ListNode *slow = head; + for (int i = 0; i < n; ++i) + fast = fast->next; + + if (fast == NULL) + { + ListNode *temp = head->next; + head->val = temp->val; + head->next = temp->next; + return head; + } + + while (fast->next != NULL) + { + fast = fast->next; + slow = slow->next; + } + slow = slow->next; + return head; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + ListNode *removeNthFromEnd(ListNode *head, int n) + { + + auto dummy = new ListNode(0); + dummy->next = head; + + auto lst = head; + int len = 0; + + while (lst != NULL) + { + ++len; + lst = lst->next; + } + + int target = len + 1 - n; + + lst = dummy; + while (target > 1) + { + lst = lst->next; + --target; + } + lst->next = lst->next->next; + + return dummy->next; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + ListNode *removeNthFromEnd(ListNode *head, int n) + { + ListNode *h = new ListNode(0); + h->next = head; + ListNode *p = h; + ListNode *k = h; + if (head->next == NULL) + return {}; + for (int i = 0; i <= n; i++) + { + k = k->next; + } + while (k) + { + p = p->next; + k = k->next; + } + p->next = p->next->next; + return h->next; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + ListNode *removeNthFromEnd(ListNode *head, int n) + { + int count = 0; + ListNode *p = head; + while (p) + { + count++; + p = p->next; + } + p = head; + if (count == 1) + return {}; + else if (count - n == 0) + return head->next; + else + { + for (int i = 1; i < count - n; i++) + { + p = p->next; + } + p->next = p->next->next; + } + return head; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/19_\346\234\211\346\225\210\347\232\204\346\213\254\345\217\267/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/19_\346\234\211\346\225\210\347\232\204\346\213\254\345\217\267/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b9abd104316ac7c382074cd0be49d1190c9a1a15 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/19_\346\234\211\346\225\210\347\232\204\346\213\254\345\217\267/solution.md" @@ -0,0 +1,178 @@ +# 有效的括号 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + string s = "([)]"; + bool res; + + res = sol.isValid(s); + cout << res; + return 0; +} +``` + +## 答案 +```cpp +class Solution +{ +public: + bool isValid(string s) + { + stack symbols; + for (int i = 0; i < s.size(); i++) + { + if (s[i] == '(' || s[i] == '[' || s[i] == '{') + symbols.push(s[i + 1]); + else + { + if (symbols.size() == 0) + return false; + + char match; + if (s[i] == ')') + match = '('; + else if (s[i] == ']') + match = '['; + else if (s[i] == '}') + match = '{'; + char c = symbols.top(); + symbols.pop(); + + if (c != match) + return false; + } + } + if (symbols.size() != 0) + return false; + + return true; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + bool isValid(string s) + { + if (s.size() % 2 != 0) + return false; + if (s.size() == 0) + return true; + + string temp; + temp.push_back(s[0]); + for (int i = 1; i < s.size(); ++i) + { + int k = temp.size() - 1; + if (temp[k] == '(' && s[i] == ')') + temp.pop_back(); + else if (temp[k] == '[' && s[i] == ']') + temp.pop_back(); + else if (temp[k] == '{' && s[i] == '}') + temp.pop_back(); + else + temp.push_back(s[i]); + } + return temp.size() == 0; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + bool isValid(string s) + { + if (s.length() == 0) + { + return true; + } + if (s.length() % 2 != 0) + { + return false; + } + stack st; + for (auto item : s) + { + if (item == '(' || item == '[' || item == '{') + st.push(item); + if (st.empty()) + return false; + if (item == ')') + { + if (st.top() == '(') + { + st.pop(); + } + else + return false; + } + else if (item == ']') + { + if (st.top() == '[') + { + st.pop(); + } + else + return false; + } + else if (item == '}') + { + if (st.top() == '{') + { + st.pop(); + } + else + return false; + } + } + return st.empty(); + } +}; +``` + +### C +```cpp +class Solution +{ +public: + bool isValid(string s) + { + stack data; + map match = {{'{', '}'}, {'[', ']'}, {'(', ')'}}; + for (auto &i : s) + { + if (i == '(' || i == '[' || i == '{') + { + /* code */ + data.push(i); + } + else + { + if (data.empty()) + return false; + char top = data.top(); + data.pop(); + if (match[top] != i) + return false; + } + } + return data.size() == 0; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/1_\344\270\244\346\225\260\347\233\270\345\212\240/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/1_\344\270\244\346\225\260\347\233\270\345\212\240/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..20e0032e422617afbf16abf7940c8e03206c662f --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/1_\344\270\244\346\225\260\347\233\270\345\212\240/solution.md" @@ -0,0 +1,220 @@ +# 两数相加 +以下错误的选项是? +## aop +### before +```cpp +#include +#include +#include +#include +using namespace std; + +struct ListNode +{ + int val; + struct ListNode *next; + ListNode() : val(0), next(nullptr){}; + ListNode(int x) : val(x), next(nullptr){}; + ListNode(int x, ListNode *next) : val(x), next(next){}; +}; +``` +### after +```cpp + +int main() +{ + Solution test; + ListNode *L1 = new ListNode(); + ListNode *l11 = new ListNode(2); + ListNode *l12 = new ListNode(4); + ListNode *l13 = new ListNode(3); + + L1->next = l11; + l11->next = l12; + l12->next = l13; + + ListNode *L2 = new ListNode(); + ListNode *l21 = new ListNode(5); + ListNode *l22 = new ListNode(6); + ListNode *l23 = new ListNode(4); + + L2->next = l21; + l21->next = l22; + l22->next = l23; + + ListNode *ret = new ListNode(); + + ret = test.addTwoNumbers(L1, L2); + + ListNode *p = ret->next; + + while (p != NULL) + { + cout << p->val << endl; + p = p->next; + } + + return 0; +} +``` + +## 答案 +```cpp +class Solution +{ +public: + ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) + { + ListNode *l3 = new ListNode(0); + ListNode *p1 = l1; + ListNode *p2 = l2; + ListNode *p3 = l3; + + int sum = 0, carry = 0; + while (p1 != NULL || p2 != NULL) + { + int x = (p1 != NULL) ? p1->val : 0; + int y = (p2 != NULL) ? p2->val : 0; + sum = x + y + carry; + carry = sum / 10; + p3->next = new ListNode(sum % 10); + p3 = p3->next; + if (p1 != NULL) + { + p1 = p1->next; + } + if (p2 != NULL) + { + p2 = p2->next; + } + } + if (carry == 0) + { + p3->next = new ListNode(carry); + p3 = p3->next; + } + return l3->next; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) + { + ListNode *retList = new ListNode(0); + auto tempList = retList; + int newVal; + int val1; + int val2; + int carryBit = 0; + while (l1 != nullptr || l2 != nullptr) + { + if (l1 == nullptr) + val1 = 0; + else + { + val1 = l1->val; + l1 = l1->next; + } + if (l2 == nullptr) + val2 = 0; + else + { + val2 = l2->val; + l2 = l2->next; + } + newVal = (val1 + val2 + carryBit) % 10; + carryBit = (val1 + val2 + carryBit) / 10; + tempList->next = new ListNode(newVal); + tempList = tempList->next; + } + + if (carryBit == 1) + { + tempList->next = new ListNode(1); + } + return retList->next; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) + { + ListNode *l3 = new ListNode; + ListNode *l4 = l3; + int m = 0; + while (l1 != nullptr || l2 != nullptr) + { + if (l1 != nullptr && l2 != nullptr) + { + l3->val = (l1->val + l2->val + m) % 10; + m = (l1->val + l2->val + m) / 10; + l1 = l1->next; + l2 = l2->next; + } + else if (l1 != nullptr) + { + l3->val = (l1->val + m) % 10; + m = (l1->val + m) / 10; + l1 = l1->next; + } + else if (l2 != nullptr) + { + l3->val = (l2->val + m) % 10; + m = (l2->val + m) / 10; + + l2 = l2->next; + } + + if (l1 != nullptr || l2 != nullptr) + { + l3->next = new ListNode; + l3 = l3->next; + } + else + { + if (m > 0) + { + l3->next = new ListNode(m); + } + } + } + + return l4; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) + { + ListNode *head = new ListNode(0), *r = head; + int up = 0; + while (l1 != NULL || l2 != NULL || up) + { + r->next = new ListNode(((l1 == NULL ? 0 : l1->val) + (l2 == NULL ? 0 : l2->val) + up) % 10); + up = ((l1 == NULL ? 0 : l1->val) + (l2 == NULL ? 0 : l2->val) + up) / 10; + r = r->next; + if (l1 != NULL) + l1 = l1->next; + if (l2 != NULL) + l2 = l2->next; + } + return head->next; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/20_\345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\351\223\276\350\241\250/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/20_\345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\351\223\276\350\241\250/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d0168c0af8641216348475db09f794e0c5aabb50 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/20_\345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\351\223\276\350\241\250/solution.md" @@ -0,0 +1,211 @@ +# 合并两个有序链表 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; + +struct ListNode +{ + int val; + struct ListNode *next; + ListNode() : val(0), next(nullptr){}; + ListNode(int x) : val(x), next(nullptr){}; + ListNode(int x, ListNode *next) : val(x), next(next){}; +}; +``` +### after +```cpp +int main() +{ + Solution sol; + + ListNode *L1 = new ListNode; + ListNode *l11 = new ListNode(1); + ListNode *l12 = new ListNode(2); + ListNode *l13 = new ListNode(4); + + L1->next = l11; + l11->next = l12; + l12->next = l13; + + ListNode *L2 = new ListNode; + ListNode *l21 = new ListNode(1); + ListNode *l22 = new ListNode(3); + ListNode *l23 = new ListNode(4); + + L2->next = l21; + l21->next = l22; + l22->next = l23; + + ListNode *ret = new ListNode; + + ret = sol.mergeTwoLists(L1, L2); + ListNode *p = ret->next; + + while (p != NULL) + { + cout << p->val << " "; + p = p->next; + } + return 0; +} + +``` + +## 答案 +```cpp +class Solution +{ +public: + ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) + { + if (l1 == NULL) + return l2; + else if (l2 == NULL) + return l1; + else if (l1->val < l2->val) + { + l1->next = mergeTwoLists(l1->next, l2); + return l1; + } + else + { + l2->next = mergeTwoLists(l1, l2->next); + return l2; + } + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) + { + l2 = l2->next; + ListNode *h = new ListNode(0); + ListNode *head = h; + while (l1 && l2) + { + if (l1->val < l2->val) + { + h->next = new ListNode(l1->val); + h = h->next; + l1 = l1->next; + } + else + { + h->next = new ListNode(l2->val); + h = h->next; + l2 = l2->next; + } + } + if (l1) + { + while (l1) + { + h->next = new ListNode(l1->val); + h = h->next; + l1 = l1->next; + } + } + else if (l2) + { + while (l2) + { + h->next = new ListNode(l2->val); + h = h->next; + l2 = l2->next; + } + } + ListNode *ptrDelete = head; + head = head->next; + delete ptrDelete; + return head; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) + { + if (NULL == l1) + return l2; + if (NULL == l2) + return l1; + l1 = l1->next; + + ListNode *p1 = l1; + ListNode *p2 = l2; + + ListNode *head = new ListNode(-1); + ListNode *curNode = head; + + while (NULL != p1 && NULL != p2) + { + if (p1->val < p2->val) + { + curNode->next = p1; + curNode = p1; + p1 = p1->next; + } + else + { + curNode->next = p2; + curNode = p2; + p2 = p2->next; + } + } + + if (NULL != p1) + curNode->next = p1; + if (NULL != p2) + curNode->next = p2; + + return head->next; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) + { + vector vec; + l1 = l1->next; + while (l1 != NULL) + { + vec.push_back(l1->val); + l1 = l1->next; + } + while (l2 != NULL) + { + vec.push_back(l2->val); + l2 = l2->next; + } + + sort(vec.begin(), vec.end()); + auto head = new ListNode; + auto cur = head; + for (const auto &c : vec) + { + auto p = new ListNode(c); + cur->next = p; + cur = p; + } + return head->next; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/21_\346\213\254\345\217\267\347\224\237\346\210\220/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/21_\346\213\254\345\217\267\347\224\237\346\210\220/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..a03cc9c08048e9d2a7c18b88f0f735e84b7041a3 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/21_\346\213\254\345\217\267\347\224\237\346\210\220/solution.md" @@ -0,0 +1,155 @@ +# 括号生成 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + int n = 3; + vector res; + res = sol.generateParenthesis(n); + for (auto i : res) + cout << i << endl; + + return 0; +} + +``` + +## 答案 +```cpp +class Solution +{ +public: + vector generateParenthesis(int n) + { + + vector ans; + string s; + back(0, 2 * n, 0, 0, s, ans); + return ans; + } + void back(int left, int right, int l_n, int r_n, string &s, vector &ans) + { + if (r_n > l_n || l_n > right) + return; + if (left == right) + { + ans.push_back(s); + return; + } + s += '('; + l_n++; + left++; + back(left, right, l_n, r_n, s, ans); + s.erase(s.end() - 1); + l_n--; + s += ')'; + r_n++; + back(left, right, l_n, r_n, s, ans); + s.erase(s.end() - 1); + r_n--; + } +}; + +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + void generateParenthesis(string i, int left, int right, vector &output) + { + if (left == 0 && right == 0) + { + output.push_back(i); + return; + } + if (left > 0) + { + generateParenthesis(i + '(', left - 1, right, output); + } + if (left < right) + { + generateParenthesis(i + ')', left, right - 1, output); + } + } + + vector generateParenthesis(int n) + { + string s = ""; + vector output; + generateParenthesis(s, n, n, output); + return output; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + vector res; + void backtrack(int n, int key, string cur) + { + if (key < 0 || key > n) + return; + if (cur.size() == 2 * n) + { + if (key == 0) + res.push_back(cur); + return; + } + backtrack(n, key - 1, cur + ')'); + backtrack(n, key + 1, cur + '('); + } + vector generateParenthesis(int n) + { + if (n == 0) + return vector{""}; + string cur("("); + backtrack(n, 1, cur); + return res; + } +}; + +``` + +### C +```cpp +class Solution +{ +public: + vector generateParenthesis(int n) + { + vector res; + dfs("", 0, n, &res); + return res; + } + + void dfs(const string &path, int m, int n, vector *res) + { + + if (m == 0 && n == 0) + { + if (!path.empty()) + res->push_back(path); + return; + } + + if (n > 0) + dfs(path + '(', m + 1, n - 1, res); + if (m > 0) + dfs(path + ')', m - 1, n, res); + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/22_\345\220\210\345\271\266K\344\270\252\345\215\207\345\272\217\351\223\276\350\241\250/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/22_\345\220\210\345\271\266K\344\270\252\345\215\207\345\272\217\351\223\276\350\241\250/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..84a39bcd3293fcc402d756bcd9b748fa93fce082 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/22_\345\220\210\345\271\266K\344\270\252\345\215\207\345\272\217\351\223\276\350\241\250/solution.md" @@ -0,0 +1,241 @@ +# 合并K个升序链表 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; + +struct ListNode +{ + int val; + struct ListNode *next; + ListNode() : val(0), next(nullptr){}; + ListNode(int x) : val(x), next(nullptr){}; + ListNode(int x, ListNode *next) : val(x), next(next){}; +}; +``` +### after +```cpp +int main() +{ + Solution sol; + + ListNode *L1 = new ListNode; + ListNode *l11 = new ListNode(1); + ListNode *l12 = new ListNode(4); + ListNode *l13 = new ListNode(5); + + L1->next = l11; + l11->next = l12; + l12->next = l13; + + ListNode *L2 = new ListNode; + ListNode *l21 = new ListNode(1); + ListNode *l22 = new ListNode(3); + ListNode *l23 = new ListNode(4); + + L2->next = l21; + l21->next = l22; + l22->next = l23; + + ListNode *L3 = new ListNode; + ListNode *l31 = new ListNode(2); + ListNode *l32 = new ListNode(6); + + L3->next = l31; + l31->next = l32; + + ListNode *ret = new ListNode; + + vector lists = {L1, L2, L3}; + + ret = sol.mergeKLists(lists); + + ListNode *p = ret->next; + + while (p != NULL) + { + cout << p->val << " "; + p = p->next; + } + return 0; +} +``` + +## 答案 +```cpp +struct cmp +{ + bool operator()(ListNode *a, ListNode *b) + { + return a->val > b->val; + } +}; +class Solution +{ +public: + ListNode *mergeKLists(vector &lists) + { + priority_queue, cmp> queue; + for (int i = 0; i < lists.size(); i++) + { + if (lists[i] != NULL) + queue.push(lists[i]); + } + if (queue.empty()) + return NULL; + ListNode *root = new ListNode(-1); + ListNode *node; + ListNode *lastNode = root; + while (!queue.empty()) + { + node = queue.top(); + queue.pop(); + lastNode->next = node; + lastNode = lastNode->next; + if (node->next) + queue.push(node->next); + } + lastNode->next = NULL; + return root->next; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + struct Status + { + int val; + ListNode *ptr; + + bool operator<(const Status &rhs) const + { + return val > rhs.val; + } + }; + + priority_queue q; + + ListNode *mergeKLists(vector &lists) + { + for (int i = 0; i < lists.size() - 1; i++) + { + lists[i + 1] = lists[i + 1]->next; + } + for (auto node : lists) + { + if (node) + q.push({node->val, node}); + } + + ListNode head, *tail = &head; + while (!q.empty()) + { + + auto f = q.top(); + + q.pop(); + + tail->next = f.ptr; + + tail = tail->next; + + if (f.ptr->next) + q.push({f.ptr->next->val, f.ptr->next}); + } + + return head.next; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) + { + if (!l1 || !l2) + return l1 ? l1 : l2; + ListNode fake, *la = l1, *lb = l2; + ListNode *cur = &fake; + while (la && lb) + { + if (la->val < lb->val) + { + cur->next = la; + la = la->next; + } + else + { + cur->next = lb; + lb = lb->next; + } + cur = cur->next; + } + cur->next = la ? la : lb; + return fake.next; + } + + ListNode *mergeKLists(vector &lists) + { + + ListNode *ans = nullptr; + for (size_t i = 0; i < lists.size(); ++i) + { + if (i >= 1) + lists[i] = lists[i]->next; + ans = mergeTwoLists(ans, lists[i]); + } + return ans; + } +}; + +``` + +### C +```cpp +class Solution +{ +public: + ListNode *mergeTlists(ListNode *l1, ListNode *l2) + { + if (l1 == nullptr) + return l2; + else if (l2 == nullptr) + return l1; + else if (l1->val < l2->val) + { + l1->next = mergeTlists(l1->next, l2); + return l1; + } + else + { + l2->next = mergeTlists(l2->next, l1); + return l2; + } + } + ListNode *mergeKLists(vector &lists) + { + int len = lists.size(); + if (len == 0) + return nullptr; + if (len == 1) + return lists[0]; + for (int i = 0; i < len - 1; i++) + { + lists[i + 1] = lists[i + 1]->next; + + lists[i + 1] = mergeTlists(lists[i], lists[i + 1]); + } + return lists[len - 1]; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/23_\344\270\244\344\270\244\344\272\244\346\215\242\351\223\276\350\241\250\344\270\255\347\232\204\350\212\202\347\202\271/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/23_\344\270\244\344\270\244\344\272\244\346\215\242\351\223\276\350\241\250\344\270\255\347\232\204\350\212\202\347\202\271/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..746f25045df4e8b01dcb0aff52fcd941f0485166 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/23_\344\270\244\344\270\244\344\272\244\346\215\242\351\223\276\350\241\250\344\270\255\347\232\204\350\212\202\347\202\271/solution.md" @@ -0,0 +1,128 @@ +# 两两交换链表中的节点 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; + +struct ListNode +{ + int val; + struct ListNode *next; + ListNode() : val(0), next(nullptr){}; + ListNode(int x) : val(x), next(nullptr){}; + ListNode(int x, ListNode *next) : val(x), next(next){}; +}; +``` +### after +```cpp + +``` + +## 答案 +```cpp +class Solution +{ +public: + ListNode *swapPairs(ListNode *head) + { + + ListNode *new_head = new ListNode(0); + new_head->next = head; + ListNode *pre = new_head; + + while (head && head->next) + { + + ListNode *first = head; + ListNode *second = head->next; + + pre->next = second; + first->next = first->next; + second->next = first; + + pre = first; + head = first->next; + } + + return new_head->next; + } +}; +``` +## 选项 + +### A +```cpp + +class Solution +{ +public: + ListNode *swapPairs(ListNode *head) + { + if (head == NULL || head->next == NULL) + return head; + + ListNode *dummy = new ListNode(0); + dummy->next = head; + ListNode *p = dummy; + + while (p->next != NULL && p->next->next != NULL) + { + ListNode *node1 = p->next; + ListNode *node2 = node1->next; + ListNode *next = node2->next; + + node2->next = node1; + node1->next = next; + p->next = node2; + + p = node1; + } + ListNode *retnode = dummy->next; + delete dummy; + + return retnode; + } +}; +``` + +### B +```cpp +class Solution { +public: + ListNode* swapPairs(ListNode* head) { + if (head == nullptr || head->next == nullptr) { + return head; + } + ListNode *next = head->next; + head->next = swapPairs(next->next); + next->next = head; + return next; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + ListNode *swapPairs(ListNode *head) + { + ListNode *p = new ListNode(-1); + p->next = head; + ListNode *h = p; + while (p->next && p->next->next) + { + ListNode *c = p->next; + ListNode *n = p->next->next; + p->next = c->next; + c->next = n->next; + n->next = c; + p = c; + } + return h->next; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/24_K \344\270\252\344\270\200\347\273\204\347\277\273\350\275\254\351\223\276\350\241\250/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/24_K \344\270\252\344\270\200\347\273\204\347\277\273\350\275\254\351\223\276\350\241\250/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..109ab08015aedea0448e21d7a11f7cdf9cbc323d --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/24_K \344\270\252\344\270\200\347\273\204\347\277\273\350\275\254\351\223\276\350\241\250/solution.md" @@ -0,0 +1,222 @@ +# K 个一组翻转链表 +以下错误的选项是? +## aop +### before +```cpp +struct ListNode +{ + int val; + struct ListNode *next; + ListNode() : val(0), next(nullptr){}; + ListNode(int x) : val(x), next(nullptr){}; + ListNode(int x, ListNode *next) : val(x), next(next){}; +}; +``` +### after +```cpp + +``` + +## 答案 +```cpp +class Solution +{ +public: + ListNode *reverseKGroup(ListNode *head, int k) + { + if (head == NULL || head->next == NULL || k == 1) + return head; + ListNode *cur = head; + int i = 1; + while (cur->next != NULL) + { + cur = cur->next; + } + if (i < k) + return head; + stack s; + ListNode *p = head; + while (s.size() != k) + { + s.push(p); + p = p->next; + } + ListNode *phead = s.top(); + s.pop(); + ListNode *p2 = phead; + while (!s.empty()) + { + p2->next = s.top(); + s.pop(); + p2 = p2->next; + p2->next = NULL; + } + while (p != NULL) + { + s.push(p); + p = p->next; + if (s.size() == k) + { + while (!s.empty()) + { + p2->next = s.top(); + s.pop(); + p2 = p2->next; + p2->next = NULL; + } + } + } + if (!s.empty()) + { + stack s2; + while (!s.empty()) + { + s2.push(s.top()); + s.pop(); + } + while (!s2.empty()) + { + p2->next = s2.top(); + s2.pop(); + p2 = p2->next; + } + } + return phead; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + vector reverse(ListNode *head, int k) + { + ListNode *newhead = NULL; + vector res; + res.push_back(head); + int i = 0; + ListNode *head1 = head; + while (head1) + { + i++; + head1 = head1->next; + if (i == k) + { + break; + } + } + if (i < k) + { + return res; + } + while (k) + { + ListNode *nexthead = head->next; + head->next = newhead; + newhead = head; + head = nexthead; + k--; + } + res.push_back(newhead); + res.push_back(head); + return res; + } + ListNode *reverseKGroup(ListNode *head, int k) + { + ListNode *newhead = new ListNode(0); + ListNode *tmp = newhead; + while (head) + { + vector res = reverse(head, k); + if (res.size() == 3) + { + tmp->next = res[1]; + tmp = res[0]; + head = res[2]; + } + else + { + tmp->next = res[0]; + head = NULL; + } + } + return newhead->next; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + ListNode *reverseK(ListNode *pre, ListNode *lat) + { + ListNode *lpre = pre->next; + ListNode *cur = lpre->next; + while (cur != lat) + { + lpre->next = cur->next; + cur->next = pre->next; + pre->next = cur; + cur = lpre->next; + } + return lpre; + } + ListNode *reverseKGroup(ListNode *head, int k) + { + ListNode *h = new ListNode(-1); + h->next = head; + ListNode *cur = head; + int t = 1; + ListNode *pre = h; + while (cur != NULL) + { + if (t % k == 0) + { + pre = reverseK(pre, cur->next); + cur = pre->next; + } + else + cur = cur->next; + + t += 1; + } + return h->next; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + ListNode *reverseKGroup(ListNode *head, int k) + { + int len = 0; + struct ListNode dummy, *prev = &dummy; + dummy.next = head; + for (; head != nullptr; head = head->next) + { + if (++len % k == 0) + { + struct ListNode *p = prev->next; + while (prev->next != head) + { + struct ListNode *q = p->next; + p->next = q->next; + q->next = prev->next; + prev->next = q; + } + prev = p; + head = p; + } + } + return dummy.next; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/25_\345\210\240\351\231\244\346\234\211\345\272\217\346\225\260\347\273\204\344\270\255\347\232\204\351\207\215\345\244\215\351\241\271/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/25_\345\210\240\351\231\244\346\234\211\345\272\217\346\225\260\347\273\204\344\270\255\347\232\204\351\207\215\345\244\215\351\241\271/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..45c3faba5ad7e7e331623de4eb7f78ae2bfbce2e --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/25_\345\210\240\351\231\244\346\234\211\345\272\217\346\225\260\347\273\204\344\270\255\347\232\204\351\207\215\345\244\215\351\241\271/solution.md" @@ -0,0 +1,131 @@ +# 删除有序数组中的重复项 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + int res; + + int arr1[] = {1, 1, 2}; + + int length1 = sizeof(arr1) / sizeof(arr1[0]); + + vector nums1(arr1, arr1 + length1); + + res = sol.removeDuplicates(nums1); + + cout << res; + return 0; +} +``` + +## 答案 +```cpp +class Solution +{ +public: + int removeDuplicates(vector &nums) + { + if (nums.size() == 0) + return 0; + int i = 0; + for (int j = 1; j < nums.size(); j++) + { + if (nums[j] != nums[i]) + { + i++; + nums[i] = nums[j]; + } + } + return i; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + int removeDuplicates(vector &nums) + { + int len = 0; + int i = 0; + int j = 0; + for (i = 0, j = i + 1;; j++) + { + if (j >= nums.size()) + { + break; + } + if (nums[i] != nums[j]) + { + nums[i + 1] = nums[j]; + i++; + } + } + len = nums.size() < i + 1 ? nums.size() : i + 1; + return len; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + int removeDuplicates(vector &nums) + { + int slow = 1, fast = 1; + if (nums.size() == 0) + return 0; + while (fast < nums.size()) + { + if (nums[fast] != nums[fast - 1]) + nums[slow++] = nums[fast++]; + else + fast++; + } + return slow; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + int removeDuplicates(vector &nums) + { + if (nums.size() == 0) + { + return 0; + } + if (nums.size() == 1) + { + return 1; + } + vector::iterator slow = nums.begin() + 1; + for (vector::iterator fast = nums.begin() + 1; fast != nums.end(); fast++) + { + if (*fast != *(fast - 1)) + { + *slow = *fast; + slow++; + } + } + nums.erase(slow, nums.end()); + return nums.size(); + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/26_\347\247\273\351\231\244\345\205\203\347\264\240/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/26_\347\247\273\351\231\244\345\205\203\347\264\240/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..276d134002635f8c49088521e882add00061c961 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/26_\347\247\273\351\231\244\345\205\203\347\264\240/solution.md" @@ -0,0 +1,32 @@ +# 移除元素 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/27_\345\256\236\347\216\260 strStr()/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/27_\345\256\236\347\216\260 strStr()/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..f2c409468117d9ef29edd8df8ed1e4bb1bd1665b --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/27_\345\256\236\347\216\260 strStr()/solution.md" @@ -0,0 +1,32 @@ +# 实现 strStr() +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/28_\344\270\244\346\225\260\347\233\270\351\231\244/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/28_\344\270\244\346\225\260\347\233\270\351\231\244/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..c0aa249d74305dadb8ba021d6b49ce777e95a99f --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/28_\344\270\244\346\225\260\347\233\270\351\231\244/solution.md" @@ -0,0 +1,32 @@ +# 两数相除 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/29_\344\270\262\350\201\224\346\211\200\346\234\211\345\215\225\350\257\215\347\232\204\345\255\220\344\270\262/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/29_\344\270\262\350\201\224\346\211\200\346\234\211\345\215\225\350\257\215\347\232\204\345\255\220\344\270\262/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..6c1790f4eb2ba0ceb9e9ac50bbbcdccdf504d529 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/29_\344\270\262\350\201\224\346\211\200\346\234\211\345\215\225\350\257\215\347\232\204\345\255\220\344\270\262/solution.md" @@ -0,0 +1,32 @@ +# 串联所有单词的子串 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/2_\346\227\240\351\207\215\345\244\215\345\255\227\347\254\246\347\232\204\346\234\200\351\225\277\345\255\220\344\270\262/solution.cpp" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/2_\346\227\240\351\207\215\345\244\215\345\255\227\347\254\246\347\232\204\346\234\200\351\225\277\345\255\220\344\270\262/solution.cpp" index ad1c8817dbb0da98673e458ff09ea040da9a881e..5ca0e492a7c3f3a8bc6159d31ef0414b9ca35603 100644 --- "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/2_\346\227\240\351\207\215\345\244\215\345\255\227\347\254\246\347\232\204\346\234\200\351\225\277\345\255\220\344\270\262/solution.cpp" +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/2_\346\227\240\351\207\215\345\244\215\345\255\227\347\254\246\347\232\204\346\234\200\351\225\277\345\255\220\344\270\262/solution.cpp" @@ -1,14 +1,26 @@ -int hset[128]; -int lengthOfLongestSubstring(char *s) +class Solution { - int i = 0, j = 0; - int m = 0; - memset(hset, 0, sizeof hset); - for (; s[j]; j++) +public: + int lengthOfLongestSubstring(String s) { - i = hset[s[j]] > i ? hset[s[j]] : i; - m = m > j - i + 1 ? m : j - i + 1; - hset[s[j]] = j + 1; + int front = 0, rear = 0; + int temp = 0; + int lengthmax = 0; + for (rear = 0; rear < s.length(); rear++) + { + for (front = temp; front < rear; front++) + { + if (s.charAt(front) == s.charAt(rear)) + { + temp = front + 1; + break; + } + } + if ((rear - temp + 1) > lengthmax) + { + lengthmax = (rear - temp + 1); + } + } + return lengthmax; } - return m; -} \ No newline at end of file +} diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/2_\346\227\240\351\207\215\345\244\215\345\255\227\347\254\246\347\232\204\346\234\200\351\225\277\345\255\220\344\270\262/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/2_\346\227\240\351\207\215\345\244\215\345\255\227\347\254\246\347\232\204\346\234\200\351\225\277\345\255\220\344\270\262/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..99d7a7950a50276ed6bbfa9861c60975fe0c17b0 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/2_\346\227\240\351\207\215\345\244\215\345\255\227\347\254\246\347\232\204\346\234\200\351\225\277\345\255\220\344\270\262/solution.md" @@ -0,0 +1,135 @@ +# 无重复字符的最长子串 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution test; + int ret; + string s = "bbbbb"; + ret = test.lengthOfLongestSubstring(s); + cout << ret; + return 0; +} +``` + +## 答案 +```cpp +class Solution +{ +public: + int lengthOfLongestSubstring(string s) + { + int count = 0; + int i = 0, j = 1, p1 = 0, p2 = 0; + if (s.length() == 0) + return 0; + else + { + count = 1; + while (s[j] != '\0') + { + for (int i = p1; i <= p2; i++) + { + if (s[i] == s[j]) + { + p1 = i + 1; + break; + } + } + p2 = j; + count = count >= (p2 - p1 + 1) ? (p2 - p1 + 1) : count; + j++; + } + } + return count; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + int lengthOfLongestSubstring(string s) + { + map hash; + int ans = 0; + int n = s.size(); + for (int i = 0, j = 0; j < n; j++) + { + if (hash.find(s[j]) != hash.end()) + i = max(hash.find(s[j])->second + 1, i); + ans = max(ans, j - i + 1); + hash[s[j]] = j; + } + return ans; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + int lengthOfLongestSubstring(string s) + { + map hash; + int ans = 0; + int i = 0; + int j = 0; + int n = s.length(); + while (i < n && j < n) + { + if (hash.find(s[j]) == hash.end()) + { + hash[s[j++]] = j; + ans = max(ans, j - i); + } + else + hash.erase(s[i++]); + } + return ans; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + int lengthOfLongestSubstring(string s) + { + int ans = 0; + + for (int i = 0; i < s.size(); i++) + for (int j = i + 1; j <= s.size(); j++) + { + if (allUnique(s, i, j)) + ans = max(ans, j - i); + } + return ans; + } + bool allUnique(string s, int begin, int end) + { + map hash; + for (int i = begin; i < end; i++) + { + if (hash.find(s[i]) != hash.end()) + return false; + hash[s[i]] = i; + } + return true; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/30_\344\270\213\344\270\200\344\270\252\346\216\222\345\210\227/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/30_\344\270\213\344\270\200\344\270\252\346\216\222\345\210\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..f5ca32cde504bb66d06e8217ca319ca8d44224ab --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/30_\344\270\213\344\270\200\344\270\252\346\216\222\345\210\227/solution.md" @@ -0,0 +1,32 @@ +# 下一个排列 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/31_\346\234\200\351\225\277\346\234\211\346\225\210\346\213\254\345\217\267/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/31_\346\234\200\351\225\277\346\234\211\346\225\210\346\213\254\345\217\267/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..45806b3cdde62e1dfe806de545ddf4ae06fb7c32 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/31_\346\234\200\351\225\277\346\234\211\346\225\210\346\213\254\345\217\267/solution.md" @@ -0,0 +1,32 @@ +# 最长有效括号 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/32_\346\220\234\347\264\242\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/32_\346\220\234\347\264\242\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..f264282d8ae98936fc28a50eb99865ac13977af3 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/32_\346\220\234\347\264\242\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204/solution.md" @@ -0,0 +1,32 @@ +# 搜索旋转排序数组 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/33_\345\234\250\346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\346\237\245\346\211\276\345\205\203\347\264\240\347\232\204\347\254\254\344\270\200\344\270\252\345\222\214\346\234\200\345\220\216\344\270\200\344\270\252\344\275\215\347\275\256/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/33_\345\234\250\346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\346\237\245\346\211\276\345\205\203\347\264\240\347\232\204\347\254\254\344\270\200\344\270\252\345\222\214\346\234\200\345\220\216\344\270\200\344\270\252\344\275\215\347\275\256/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..ec1353af6ab7612fc08e175368757fbb385a8208 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/33_\345\234\250\346\216\222\345\272\217\346\225\260\347\273\204\344\270\255\346\237\245\346\211\276\345\205\203\347\264\240\347\232\204\347\254\254\344\270\200\344\270\252\345\222\214\346\234\200\345\220\216\344\270\200\344\270\252\344\275\215\347\275\256/solution.md" @@ -0,0 +1,32 @@ +# 在排序数组中查找元素的第一个和最后一个位置 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/34_\346\220\234\347\264\242\346\217\222\345\205\245\344\275\215\347\275\256/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/34_\346\220\234\347\264\242\346\217\222\345\205\245\344\275\215\347\275\256/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..4fe0c8672c51373e4af13fe5fc40e65c3a971668 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/34_\346\220\234\347\264\242\346\217\222\345\205\245\344\275\215\347\275\256/solution.md" @@ -0,0 +1,32 @@ +# 搜索插入位置 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/35_\346\234\211\346\225\210\347\232\204\346\225\260\347\213\254/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/35_\346\234\211\346\225\210\347\232\204\346\225\260\347\213\254/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..a0d2b9a08bd921a55fecbb1b7dd91f289455ed74 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/35_\346\234\211\346\225\210\347\232\204\346\225\260\347\213\254/solution.md" @@ -0,0 +1,32 @@ +# 有效的数独 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/36_\350\247\243\346\225\260\347\213\254/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/36_\350\247\243\346\225\260\347\213\254/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..4edb60ec40b75a9a495bea14225ccf1dc9572b76 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/36_\350\247\243\346\225\260\347\213\254/solution.md" @@ -0,0 +1,32 @@ +# 解数独 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/37_\345\244\226\350\247\202\346\225\260\345\210\227/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/37_\345\244\226\350\247\202\346\225\260\345\210\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..1227ae06b92b29b81526bc45ffb84181e53994bf --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/37_\345\244\226\350\247\202\346\225\260\345\210\227/solution.md" @@ -0,0 +1,32 @@ +# 外观数列 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/38_\347\273\204\345\220\210\346\200\273\345\222\214/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/38_\347\273\204\345\220\210\346\200\273\345\222\214/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..87524029930459718b4195e1ee9cf70572909cb3 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/38_\347\273\204\345\220\210\346\200\273\345\222\214/solution.md" @@ -0,0 +1,32 @@ +# 组合总和 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/39_\347\273\204\345\220\210\346\200\273\345\222\214 II/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/39_\347\273\204\345\220\210\346\200\273\345\222\214 II/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e14e092e5c9b0b378e76cbbf115f0fc9311b8e86 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/39_\347\273\204\345\220\210\346\200\273\345\222\214 II/solution.md" @@ -0,0 +1,32 @@ +# 组合总和 II +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/3_\345\257\273\346\211\276\344\270\244\344\270\252\346\255\243\345\272\217\346\225\260\347\273\204\347\232\204\344\270\255\344\275\215\346\225\260/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/3_\345\257\273\346\211\276\344\270\244\344\270\252\346\255\243\345\272\217\346\225\260\347\273\204\347\232\204\344\270\255\344\275\215\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..2022a3132f85ccc4476f515e49dcd799678685c7 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/3_\345\257\273\346\211\276\344\270\244\344\270\252\346\255\243\345\272\217\346\225\260\347\273\204\347\232\204\344\270\255\344\275\215\346\225\260/solution.md" @@ -0,0 +1,180 @@ +# 寻找两个正序数组的中位数 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution test; + + float ret; + int arr1[] = {1, 2}; + int arr2[] = {3, 4}; + int length1 = sizeof(arr1) / sizeof(arr1[0]); + int length2 = sizeof(arr2) / sizeof(arr2[0]); + + vector nums1(arr1, arr1 + length1); + vector nums2(arr2, arr2 + length2); + + ret = test.findMedianSortedArrays(nums1, nums2); + cout << setiosflags(ios::fixed) << setprecision(5) << ret << endl; + return 0; +} +``` + +## 答案 +```cpp +class Solution +{ + +public: + int getK(vector nums1, vector nums2, int k) + { + int len1 = nums1.size(); + int len2 = nums2.size(); + int index1 = 0, index2 = 0; + while (1) + { + + if (index1 == len1) + { + return nums2[index2 + k - 1]; + } + if (index2 == len2) + { + return nums1[index1 + k - 1]; + } + if (k == 1) + { + return max(nums1[index1], nums2[index2]); + } + int newIndex1 = max(index1 + k / 2 - 1, len1 - 1); + int newIndex2 = max(index2 + k / 2 - 1, len2 - 1); + if (nums1[newIndex1] <= nums2[newIndex2]) + { + + k -= newIndex1 - index1 + 1; + + index1 = newIndex1 + 1; + } + else + { + k -= newIndex2 - index2 + 1; + index2 = newIndex2 + 1; + } + } + } + double findMedianSortedArrays(vector &nums1, vector &nums2) + { + int wholeLen = nums1.size() + nums2.size(); + if (wholeLen % 2 == 0) + { + return (getK(nums1, nums2, wholeLen / 2) + getK(nums1, nums2, wholeLen / 2 + 1)) / 2.0; + } + else + { + return getK(nums1, nums2, wholeLen / 2 + 1); + } + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ + int len1; + int len2; + +public: + double findMedianSortedArrays(vector &nums1, vector &nums2) + { + if (nums1.size() <= 0 && nums2.size() <= 0) + return 0; + len1 = nums1.size(); + len2 = nums2.size(); + int left = (len1 + len2 + 1) / 2, right = (len1 + len2 + 2) / 2; + return (find(nums1, 0, nums2, 0, left) + find(nums1, 0, nums2, 0, right)) / 2.0; + } + + int find(vector &nums1, int i, vector &nums2, int j, int k) + { + if (i >= nums1.size()) + return nums2[j + k - 1]; + if (j >= nums2.size()) + return nums1[i + k - 1]; + if (k == 1) + return min(nums1[i], nums2[j]); + int midval1 = i + k / 2 - 1 < nums1.size() ? nums1[i + k / 2 - 1] : INT_MAX; + int midval2 = j + k / 2 - 1 < nums2.size() ? nums2[j + k / 2 - 1] : INT_MAX; + if (midval1 < midval2) + return find(nums1, i + k / 2, nums2, j, k - k / 2); + else + return find(nums1, i, nums2, j + k / 2, k - k / 2); + } +}; +``` + +### B +```cpp +class Solution +{ +public: + double findMedianSortedArrays(vector &nums1, vector &nums2) + { + vector vecSumArr(nums1.size() + nums2.size()); + + merge(nums1.begin(), nums1.end(), nums2.begin(), nums2.end(), vecSumArr.begin()); + + if (vecSumArr.size() % 2 == 0) + return (*(vecSumArr.begin() + vecSumArr.size() / 2 - 1) + *(vecSumArr.begin() + vecSumArr.size() / 2)) * 1.0 / 2; + else + return *(vecSumArr.begin() + vecSumArr.size() / 2); + } +}; +``` + +### C +```cpp +class Solution +{ +public: + double findMedianSortedArrays(vector &nums1, vector &nums2) + { + int nums1Size = nums1.size(); + int nums2Size = nums2.size(); + int na = nums1Size + nums2Size; + int *ns = (int *)malloc(4 * na); + int i = 0, j = 0, d = 0; + int m = na / 2 + 1; + while (d < m) + { + int n; + if (i < nums1Size && j < nums2Size) + { + n = (nums1[i] < nums2[j]) ? nums1[i++] : nums2[j++]; + } + else if (i < nums1Size) + { + n = nums1[i++]; + } + else if (j < nums2Size) + { + n = nums2[j++]; + } + ns[d++] = n; + } + if (na % 2) + { + return ns[d - 1]; + } + return (ns[d - 1] + ns[d - 2]) / 2.0; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/40_\347\274\272\345\244\261\347\232\204\347\254\254\344\270\200\344\270\252\346\255\243\346\225\260/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/40_\347\274\272\345\244\261\347\232\204\347\254\254\344\270\200\344\270\252\346\255\243\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..ccc97893c5f5edf3dbebb8b333fa53e1d66d8a06 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/40_\347\274\272\345\244\261\347\232\204\347\254\254\344\270\200\344\270\252\346\255\243\346\225\260/solution.md" @@ -0,0 +1,32 @@ +# 缺失的第一个正数 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/41_\346\216\245\351\233\250\346\260\264/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/41_\346\216\245\351\233\250\346\260\264/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..8144d407b8289277003d297966e9ab14fc8c97f7 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/41_\346\216\245\351\233\250\346\260\264/solution.md" @@ -0,0 +1,32 @@ +# 接雨水 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/42_\345\255\227\347\254\246\344\270\262\347\233\270\344\271\230/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/42_\345\255\227\347\254\246\344\270\262\347\233\270\344\271\230/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..345e628d2a52880f860b5c899bbed13a4d5d6005 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/42_\345\255\227\347\254\246\344\270\262\347\233\270\344\271\230/solution.md" @@ -0,0 +1,32 @@ +# 字符串相乘 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/43_\351\200\232\351\205\215\347\254\246\345\214\271\351\205\215/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/43_\351\200\232\351\205\215\347\254\246\345\214\271\351\205\215/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..db7bc77f9a52ed5e026428b2a5dadb2a23f5ccea --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/43_\351\200\232\351\205\215\347\254\246\345\214\271\351\205\215/solution.md" @@ -0,0 +1,32 @@ +# 通配符匹配 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/44_\350\267\263\350\267\203\346\270\270\346\210\217 II/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/44_\350\267\263\350\267\203\346\270\270\346\210\217 II/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..a270b2be3a171650602e7aff7d023297194a1967 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/44_\350\267\263\350\267\203\346\270\270\346\210\217 II/solution.md" @@ -0,0 +1,32 @@ +# 跳跃游戏 II +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/45_\345\205\250\346\216\222\345\210\227/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/45_\345\205\250\346\216\222\345\210\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..15e1319c646461e6f7c15f7a48a0e7127a5b7c18 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/45_\345\205\250\346\216\222\345\210\227/solution.md" @@ -0,0 +1,32 @@ +# 全排列 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/46_\345\205\250\346\216\222\345\210\227 II/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/46_\345\205\250\346\216\222\345\210\227 II/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..0720de77ee410ec0a59209fb1b5fe24e5a2f34ba --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/46_\345\205\250\346\216\222\345\210\227 II/solution.md" @@ -0,0 +1,32 @@ +# 全排列 II +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/47_\346\227\213\350\275\254\345\233\276\345\203\217/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/47_\346\227\213\350\275\254\345\233\276\345\203\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..442f8b49d59c9e1eacb797610cb864ef24557e3f --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/47_\346\227\213\350\275\254\345\233\276\345\203\217/solution.md" @@ -0,0 +1,32 @@ +# 旋转图像 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/48_\345\255\227\346\257\215\345\274\202\344\275\215\350\257\215\345\210\206\347\273\204/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/48_\345\255\227\346\257\215\345\274\202\344\275\215\350\257\215\345\210\206\347\273\204/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..8d02088da2319509fe56035604ec673e84e3bda7 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/48_\345\255\227\346\257\215\345\274\202\344\275\215\350\257\215\345\210\206\347\273\204/solution.md" @@ -0,0 +1,32 @@ +# 字母异位词分组 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/49_Pow(x, n)/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/49_Pow(x, n)/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..751c5adfab83059e20d2571393cd7bca15c79ae7 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/49_Pow(x, n)/solution.md" @@ -0,0 +1,32 @@ +# Pow(x, n) +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/4_\346\234\200\351\225\277\345\233\236\346\226\207\345\255\220\344\270\262/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/4_\346\234\200\351\225\277\345\233\236\346\226\207\345\255\220\344\270\262/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..35788872fbb8f67b7bd32cde07394bf71afb0734 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/4_\346\234\200\351\225\277\345\233\236\346\226\207\345\255\220\344\270\262/solution.md" @@ -0,0 +1,175 @@ +# 最长回文子串 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution test; + + string ret; + string s = "cbbd"; + ret = test.longestPalindrome(s); + cout << ret << endl; + return 0; +} +``` + +## 答案 +```cpp +class Solution +{ +public: + string longestPalindrome(string s) + { + int len = s.size(); + if (len == 0 || len == 1) + return s; + int start = 0; + int end = 0; + int mlen = 0; + for (int i = 0; i < len; i++) + { + int len1 = expendaroundcenter(s, i, i); + int len2 = expendaroundcenter(s, i, i + 1); + mlen = max(min(len1, len2), mlen); + if (mlen > end - start + 1) + { + start = i - (mlen - 1) / 2; + end = i + mlen / 2; + } + } + return s.substr(start, mlen); + } + +private: + int expendaroundcenter(string s, int left, int right) + + { + int L = left; + int R = right; + while (L >= 0 && R < s.length() && s[R] == s[L]) + { + L--; + R++; + } + return R - L - 1; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + string longestPalindrome(string s) + { + int len = s.size(); + if (len == 0 || len == 1) + return s; + int start = 0; + int max = 1; + vector> dp(len, vector(len)); + for (int i = 0; i < len; i++) + { + dp[i][i] = 1; + if (i < len - 1 && s[i] == s[i + 1]) + { + dp[i][i + 1] = 1; + max = 2; + start = i; + } + } + for (int l = 3; l <= len; l++) + { + for (int i = 0; i + l - 1 < len; i++) + { + int j = l + i - 1; + if (s[i] == s[j] && dp[i + 1][j - 1] == 1) + { + dp[i][j] = 1; + start = i; + max = l; + } + } + } + return s.substr(start, max); + } +}; +``` + +### B +```cpp +class Solution +{ +public: + string longestPalindrome(string s) + { + if (s.length() == 1) + return s; + string rev = s; + string res; + std::reverse(rev.begin(), rev.end()); + if (rev == s) + return s; + int len = 0; + for (int i = 0; i < s.length(); i++) + { + string temp; + for (int j = i; j < s.length(); j++) + { + temp = temp + s[j]; + if (len >= temp.length()) + continue; + else if (rev.find(temp) != -1) + { + string q = temp; + std::reverse(q.begin(), q.end()); + if (q == temp) + { + len = temp.length(); + res = temp; + } + } + else + break; + } + temp = ""; + } + return res; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + string longestPalindrome(string s) + { + string res = ""; + string temp = ""; + for (int i = 0; i < s.length(); i++) + { + for (int j = i; j < s.length(); j++) + { + temp = temp + s[j]; + string tem = temp; + std::reverse(tem.begin(), tem.end()); + if (temp == tem) + res = res.length() > temp.length() ? res : temp; + } + temp = ""; + } + return res; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/50_N \347\232\207\345\220\216/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/50_N \347\232\207\345\220\216/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..8c97939c38d3372b0b9dc9f9dba69384bd7ad6ae --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/50_N \347\232\207\345\220\216/solution.md" @@ -0,0 +1,32 @@ +# N 皇后 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/51_N\347\232\207\345\220\216 II/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/51_N\347\232\207\345\220\216 II/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..dac9f282516a75e53dfaa75e509927dc1d1dee04 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/51_N\347\232\207\345\220\216 II/solution.md" @@ -0,0 +1,32 @@ +# N皇后 II +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/52_\346\234\200\345\244\247\345\255\220\345\272\217\345\222\214/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/52_\346\234\200\345\244\247\345\255\220\345\272\217\345\222\214/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e32830016f7ed6dbf31b9e34f23de64c9baa91b2 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/52_\346\234\200\345\244\247\345\255\220\345\272\217\345\222\214/solution.md" @@ -0,0 +1,32 @@ +# 最大子序和 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/53_\350\236\272\346\227\213\347\237\251\351\230\265/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/53_\350\236\272\346\227\213\347\237\251\351\230\265/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..eda3027493e3493db8496bfee8ecc1ee4d9f22a0 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/53_\350\236\272\346\227\213\347\237\251\351\230\265/solution.md" @@ -0,0 +1,32 @@ +# 螺旋矩阵 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/54_\350\267\263\350\267\203\346\270\270\346\210\217/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/54_\350\267\263\350\267\203\346\270\270\346\210\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..63c20368ec0c7b811862a931c4572344441b1f7a --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/54_\350\267\263\350\267\203\346\270\270\346\210\217/solution.md" @@ -0,0 +1,32 @@ +# 跳跃游戏 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/55_\345\220\210\345\271\266\345\214\272\351\227\264/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/55_\345\220\210\345\271\266\345\214\272\351\227\264/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..fb69724b23276a10e13615d4e8a35408f4adcd8a --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/55_\345\220\210\345\271\266\345\214\272\351\227\264/solution.md" @@ -0,0 +1,32 @@ +# 合并区间 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/56_\346\217\222\345\205\245\345\214\272\351\227\264/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/56_\346\217\222\345\205\245\345\214\272\351\227\264/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..778c9dbecf3eb9c817aef1da6b02426751c321c7 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/56_\346\217\222\345\205\245\345\214\272\351\227\264/solution.md" @@ -0,0 +1,32 @@ +# 插入区间 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/57_\346\234\200\345\220\216\344\270\200\344\270\252\345\215\225\350\257\215\347\232\204\351\225\277\345\272\246/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/57_\346\234\200\345\220\216\344\270\200\344\270\252\345\215\225\350\257\215\347\232\204\351\225\277\345\272\246/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..9794bfaafdf39e0ffcc6ab2b9dc83a19f6e11e98 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/57_\346\234\200\345\220\216\344\270\200\344\270\252\345\215\225\350\257\215\347\232\204\351\225\277\345\272\246/solution.md" @@ -0,0 +1,32 @@ +# 最后一个单词的长度 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/58_\350\236\272\346\227\213\347\237\251\351\230\265 II/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/58_\350\236\272\346\227\213\347\237\251\351\230\265 II/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..f85b0b967ffccf5b003d4f13bacc2ab655fae3ff --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/58_\350\236\272\346\227\213\347\237\251\351\230\265 II/solution.md" @@ -0,0 +1,32 @@ +# 螺旋矩阵 II +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/59_\346\216\222\345\210\227\345\272\217\345\210\227/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/59_\346\216\222\345\210\227\345\272\217\345\210\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..9b1733b9d24ddf460cd8e62cc5e4c85901d6d7d6 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/59_\346\216\222\345\210\227\345\272\217\345\210\227/solution.md" @@ -0,0 +1,32 @@ +# 排列序列 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/5_Z \345\255\227\345\275\242\345\217\230\346\215\242/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/5_Z \345\255\227\345\275\242\345\217\230\346\215\242/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..197b43ebe1fbe681590b89d41a34a29d04499f38 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/5_Z \345\255\227\345\275\242\345\217\230\346\215\242/solution.md" @@ -0,0 +1,198 @@ +# Z 字形变换 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution test; + + string ret; + string s = "LEETCODEISHIRING"; + int numrows = 3; + ret = test.convert(s, numrows); + cout << ret << endl; + return 0; +} + +``` + +## 答案 +```cpp +class Solution +{ +public: + string convert(string s, int numRows) + { + string result; + int num1 = numRows * 2 - 2; + if (s.size() < 2 || num1 == 0) + { + result = s; + return result; + } + int num = (s.size() / num1); + string str[100]; + int count = 0; + int i = 0; + for (int j = 0; j < s.size(); j++) + { + if (count == num1) + { + i++; + count = 0; + } + str[i].push_back(s[j]); + } + + for (int n = 0; n < num; n++) + { + result.push_back(str[n][0]); + } + for (int m = 1; m < numRows; m++) + { + for (int n = 0; n < num; n++) + { + if (m < str[n].size()) + result.push_back(str[n][m]); + if ((num1 - m) < str[n].size() && m != (num1 - m)) + result.push_back(str[n][num1 - m]); + } + } + return result; + } +}; + +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + string convert(string s, int numRows) + { + string result; + int i = 0; + int j = 0; + int tem = numRows != 1 ? 2 * (numRows - 1) : 1; + for (i = 0; i <= tem / 2; ++i) + { + j = i; + while (j < s.size()) + { + result += s[j]; + if (j % tem != 0 && j % tem != tem / 2 && j + tem - 2 * i < s.size()) + { + result += s[j + tem - 2 * i]; + } + j += tem; + } + } + return result; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + string convert(string s, int numRows) + { + if (numRows == 1 || s.size() <= numRows) + return s; + vector rows(numRows); + int curRow = 0; + bool goingDown = false; + for (char c : s) + { + rows[curRow] += c; + if (curRow == 0 || curRow == numRows - 1) + goingDown = !goingDown; + curRow += goingDown ? 1 : -1; + } + string ret; + for (string row : rows) + ret += row; + return ret; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + string convert(string s, int numRows) + { + if (s.size() <= numRows || numRows <= 1) + return s; + int len = s.size(); + vector > pos(len, vector(numRows)); + int k = 0; + int flag = numRows - 1; + for (int i = 0; i < len; i++) + { + for (int j = 0; j < numRows; j++) + { + if (i % (numRows - 1) == 0 || numRows == 2) + { + pos[i][j] = s[k]; + k++; + } + else if (j == flag - 1) + { + pos[i][j] = s[k]; + k++; + flag--; + } + else + continue; + if (k == len) + break; + } + if (k == len) + break; + if (flag == 1) + flag = numRows - 1; + } + string res; + for (int j = 0; j <= numRows; j++) + { + int count = 0; + for (int i = 0; i < len; i++) + { + if (j % (numRows - 1) == 0 && pos[i][j] != '\0') + { + res = res + pos[i][j]; + i = i + numRows - 2; + count = 0; + continue; + } + else if (j % (numRows - 1) != 0 && pos[i][j] != '\0') + { + res = res + pos[i][j]; + count = 0; + continue; + } + else + count++; + if (count >= numRows) + break; + } + if (res.size() == len) + break; + } + return res; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/60_\346\227\213\350\275\254\351\223\276\350\241\250/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/60_\346\227\213\350\275\254\351\223\276\350\241\250/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b7aa4e487ae4a96f59f65959f1b3d1177ceb91b3 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/60_\346\227\213\350\275\254\351\223\276\350\241\250/solution.md" @@ -0,0 +1,32 @@ +# 旋转链表 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/61_\344\270\215\345\220\214\350\267\257\345\276\204/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/61_\344\270\215\345\220\214\350\267\257\345\276\204/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e849ddde294234724da5d3e53217372f7109fec6 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/61_\344\270\215\345\220\214\350\267\257\345\276\204/solution.md" @@ -0,0 +1,32 @@ +# 不同路径 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/62_\344\270\215\345\220\214\350\267\257\345\276\204 II/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/62_\344\270\215\345\220\214\350\267\257\345\276\204 II/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..44ed7ebed4409f93f95b72156e0bdeec02e20be8 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/62_\344\270\215\345\220\214\350\267\257\345\276\204 II/solution.md" @@ -0,0 +1,32 @@ +# 不同路径 II +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/63_\346\234\200\345\260\217\350\267\257\345\276\204\345\222\214/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/63_\346\234\200\345\260\217\350\267\257\345\276\204\345\222\214/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d6c35deed2178466e3f7bb2cbdbe77a553e05030 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/63_\346\234\200\345\260\217\350\267\257\345\276\204\345\222\214/solution.md" @@ -0,0 +1,32 @@ +# 最小路径和 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/64_\346\234\211\346\225\210\346\225\260\345\255\227/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/64_\346\234\211\346\225\210\346\225\260\345\255\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..c2a81799941a6eca6c2b1c0476e63d814fe6138e --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/64_\346\234\211\346\225\210\346\225\260\345\255\227/solution.md" @@ -0,0 +1,32 @@ +# 有效数字 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/65_\345\212\240\344\270\200/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/65_\345\212\240\344\270\200/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..a3f790f0c6db2aedcf64ca9d66474c6973d3564e --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/65_\345\212\240\344\270\200/solution.md" @@ -0,0 +1,32 @@ +# 加一 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/66_\344\272\214\350\277\233\345\210\266\346\261\202\345\222\214/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/66_\344\272\214\350\277\233\345\210\266\346\261\202\345\222\214/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..274217f29db11cea942c32fd42d4c54e615507e7 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/66_\344\272\214\350\277\233\345\210\266\346\261\202\345\222\214/solution.md" @@ -0,0 +1,32 @@ +# 二进制求和 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/67_\346\226\207\346\234\254\345\267\246\345\217\263\345\257\271\351\275\220/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/67_\346\226\207\346\234\254\345\267\246\345\217\263\345\257\271\351\275\220/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..155e89d3f079e74c9997903ddf6dfc7203d6506f --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/67_\346\226\207\346\234\254\345\267\246\345\217\263\345\257\271\351\275\220/solution.md" @@ -0,0 +1,32 @@ +# 文本左右对齐 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/68_x \347\232\204\345\271\263\346\226\271\346\240\271/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/68_x \347\232\204\345\271\263\346\226\271\346\240\271/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..83d2d6685b40be6db9bb41424a54b6f000d182bd --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/68_x \347\232\204\345\271\263\346\226\271\346\240\271/solution.md" @@ -0,0 +1,32 @@ +# x 的平方根 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/69_\347\210\254\346\245\274\346\242\257/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/69_\347\210\254\346\245\274\346\242\257/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..4d3b7fa9e6670f7b09fe7f3d6c20aff6da46a2ca --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/69_\347\210\254\346\245\274\346\242\257/solution.md" @@ -0,0 +1,32 @@ +# 爬楼梯 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/6_\346\225\264\346\225\260\345\217\215\350\275\254/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/6_\346\225\264\346\225\260\345\217\215\350\275\254/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..76cd1d571a139701283267ddcf5bc35cd12ade46 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/6_\346\225\264\346\225\260\345\217\215\350\275\254/solution.md" @@ -0,0 +1,121 @@ +# 整数反转 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution test; + + int ret; + int x = -123; + int numrows = 3; + ret = test.reverse(x); + cout << ret << endl; + return 0; +} + +``` + +## 答案 +```cpp +class Solution +{ +public: + int reverse(int x) + { + long n = 0; + while (x) + { + n = x % 10 + n * 10; + x /= 10; + } + return n > INT_MAX || n < INT_MIN ? n : 0; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + int reverse(int x) + { + int MAX = 0x7fffffff; + int MIN = 1 << 31; + ostringstream stream, smax, smin; + string ss; + stream << x; + ss += stream.str(); + smax << MAX; + string max_num = smax.str(); + smin << MIN; + string min_num = smin.str(); + std::reverse(ss.begin(), ss.end()); + if (x < 0) + { + ss.insert(0, "-"); + ss.pop_back(); + } + if (x > 0 && ss.size() >= max_num.size() && (ss > max_num)) + return 0; + else if (x < 0 && ss.size() >= min_num.size() && ss > min_num) + return 0; + else + return atoi(ss.c_str()); + } +}; +``` + +### B +```cpp +class Solution +{ +public: +#define INT_MAX 2147483647 +#define INT_MIN (-INT_MAX - 1) + int reverse(int x) + { + int flag = x < 0 ? -1 : 1; + int num = 0; + while (x) + { + if ((flag == -1 && (INT_MIN / 10 > num)) || (flag == 1 && INT_MAX / 10 < num)) + return 0; + num = num * 10 + x % 10; + x /= 10; + } + return num; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + int reverse(int x) + { + int rev = 0; + while (x != 0) + { + int pop = x % 10; + x = x / 10; + if (rev > INT_MAX / 10 || (rev == INT_MAX / 10 && pop > 7)) + return 0; + if (rev < INT_MIN / 10 || (rev == INT_MIN / 10 && pop < -8)) + return 0; + rev = rev * 10 + pop; + } + return rev; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/70_\347\256\200\345\214\226\350\267\257\345\276\204/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/70_\347\256\200\345\214\226\350\267\257\345\276\204/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..05820b1f83e5f63552adfb9986211c126b83d3ff --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/70_\347\256\200\345\214\226\350\267\257\345\276\204/solution.md" @@ -0,0 +1,32 @@ +# 简化路径 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/71_\347\274\226\350\276\221\350\267\235\347\246\273/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/71_\347\274\226\350\276\221\350\267\235\347\246\273/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..031c1c98be189d163f351369058d0c78803d1d69 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/71_\347\274\226\350\276\221\350\267\235\347\246\273/solution.md" @@ -0,0 +1,32 @@ +# 编辑距离 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/72_\347\237\251\351\230\265\347\275\256\351\233\266/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/72_\347\237\251\351\230\265\347\275\256\351\233\266/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..dff408d020daa10ef14c73a3b90d2729dd5441a0 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/72_\347\237\251\351\230\265\347\275\256\351\233\266/solution.md" @@ -0,0 +1,32 @@ +# 矩阵置零 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/73_\346\220\234\347\264\242\344\272\214\347\273\264\347\237\251\351\230\265/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/73_\346\220\234\347\264\242\344\272\214\347\273\264\347\237\251\351\230\265/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..89918e6db4623c8953a5f32b8214ef0f2d1438c5 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/73_\346\220\234\347\264\242\344\272\214\347\273\264\347\237\251\351\230\265/solution.md" @@ -0,0 +1,32 @@ +# 搜索二维矩阵 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/74_\351\242\234\350\211\262\345\210\206\347\261\273/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/74_\351\242\234\350\211\262\345\210\206\347\261\273/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..f19bb8da48d6bf7cd53951413cd5431d8134df0d --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/74_\351\242\234\350\211\262\345\210\206\347\261\273/solution.md" @@ -0,0 +1,32 @@ +# 颜色分类 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/75_\346\234\200\345\260\217\350\246\206\347\233\226\345\255\220\344\270\262/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/75_\346\234\200\345\260\217\350\246\206\347\233\226\345\255\220\344\270\262/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..695e0bd0a19feef7f7e59a95bcb9451866c64573 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/75_\346\234\200\345\260\217\350\246\206\347\233\226\345\255\220\344\270\262/solution.md" @@ -0,0 +1,32 @@ +# 最小覆盖子串 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/76_\347\273\204\345\220\210/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/76_\347\273\204\345\220\210/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..35d3b42f3f8c0c6d1f8bb7101305fb87037e25a7 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/76_\347\273\204\345\220\210/solution.md" @@ -0,0 +1,32 @@ +# 组合 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/77_\345\255\220\351\233\206/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/77_\345\255\220\351\233\206/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..5396eeaec555bd58c012a7f4922bab4568fea784 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/77_\345\255\220\351\233\206/solution.md" @@ -0,0 +1,32 @@ +# 子集 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/78_\345\215\225\350\257\215\346\220\234\347\264\242/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/78_\345\215\225\350\257\215\346\220\234\347\264\242/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..fb57bf9ada9ef1040e9486dc5b9c566edbbc0b83 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/78_\345\215\225\350\257\215\346\220\234\347\264\242/solution.md" @@ -0,0 +1,32 @@ +# 单词搜索 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/79_\345\210\240\351\231\244\346\234\211\345\272\217\346\225\260\347\273\204\344\270\255\347\232\204\351\207\215\345\244\215\351\241\271 II/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/79_\345\210\240\351\231\244\346\234\211\345\272\217\346\225\260\347\273\204\344\270\255\347\232\204\351\207\215\345\244\215\351\241\271 II/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..04781fd58c0233e3f8f809dc1037d72a2f092a62 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/79_\345\210\240\351\231\244\346\234\211\345\272\217\346\225\260\347\273\204\344\270\255\347\232\204\351\207\215\345\244\215\351\241\271 II/solution.md" @@ -0,0 +1,32 @@ +# 删除有序数组中的重复项 II +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/7_\345\255\227\347\254\246\344\270\262\350\275\254\346\215\242\346\225\264\346\225\260 (atoi)/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/7_\345\255\227\347\254\246\344\270\262\350\275\254\346\215\242\346\225\264\346\225\260 (atoi)/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d7d5fcf695c9dbd0255b2dd40d2b00f6bff16d81 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/7_\345\255\227\347\254\246\344\270\262\350\275\254\346\215\242\346\225\264\346\225\260 (atoi)/solution.md" @@ -0,0 +1,172 @@ +# 字符串转换整数 (atoi) +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + cout << sol.myAtoi("-42") << endl; + return 0; +} +``` + +## 答案 +```cpp +class Solution +{ +public: + int myAtoi(string s) + { + int index = 0; + + while (index < s.length() && s[index] == ' ') + index++; + + int sign = 1; + if (index < s.length() && (s[index] == '+' || s[index] == '-')) + { + if (s[index] == '-') + sign = -1; + index++; + } + + int val = 0; + while (index < s.length() && (s[index] >= '0' && s[index] <= '9')) + { + if (val > (2147483647 - (s[index] - '0')) / 10) + { + if (sign == -1) + return -2147483648; + else + return 2147483647; + } + + val = val * 10 + (s[index] - '0'); + index++; + } + + return val; + } +}; +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + int myAtoi(string str) + { + int d = 0; + istringstream is(str); + is >> d; + return d; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + int myAtoi(string str) + { + int i = 0; + while (' ' == str[i]) + ++i; + long flag = 1; + if ('+' == str[i]) + { + flag = 1; + return fun(str, ++i, flag); + } + else if ('-' == str[i]) + { + flag = -1; + return fun(str, ++i, flag); + } + else if (str[i] - '0' >= 0 && str[i] - '0' <= 9) + { + flag = 1; + return fun(str, i, flag); + } + else + { + return 0; + } + } + int fun(string str, int i, const long flag) + { + long res = 0; + while (str[i] - '0' >= 0 && str[i] - '0' <= 9) + { + res = res * 10 + (str[i++] - '0'); + if (res * flag > pow(2, 31) - 1) + return INT_MAX; + if (res * flag < -pow(2, 31)) + return INT_MIN; + } + res = res * flag; + return int(res); + } +}; +``` + +### C +```cpp +class Solution +{ +public: + int myAtoi(string str) + { + int max = INT_MAX / 10; + int min = INT_MIN / 10; + int max_f = INT_MAX % 10; + int min_f = INT_MIN % 10; + int len = str.length(); + bool flag = false; + int sum = 0; + int symbol = 1; + for (int i = 0; i < len; i++) + { + char ch = str[i]; + if (!flag) + { + if (ch == ' ') + continue; + else if (ch == '+') + flag = true; + else if (ch == '-') + { + flag = true; + symbol = -1; + } + else if (ch <= '9' && ch >= '0') + flag = true; + else + break; + } + else if (ch > '9' || ch < '0') + break; + if (ch <= '9' && ch >= '0') + { + int pos = symbol * (ch - '0'); + if (sum > max || (sum == max && pos >= max_f)) + return INT_MAX; + if (sum < min || (sum == min && pos <= min_f)) + return INT_MIN; + sum = sum * 10 + pos; + } + } + return sum; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/80_\346\220\234\347\264\242\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204 II/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/80_\346\220\234\347\264\242\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204 II/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..cafe34dfcab21b6bf079fea1d65f2a7b4ab94584 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/80_\346\220\234\347\264\242\346\227\213\350\275\254\346\216\222\345\272\217\346\225\260\347\273\204 II/solution.md" @@ -0,0 +1,32 @@ +# 搜索旋转排序数组 II +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/81_\345\210\240\351\231\244\346\216\222\345\272\217\351\223\276\350\241\250\344\270\255\347\232\204\351\207\215\345\244\215\345\205\203\347\264\240 II/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/81_\345\210\240\351\231\244\346\216\222\345\272\217\351\223\276\350\241\250\344\270\255\347\232\204\351\207\215\345\244\215\345\205\203\347\264\240 II/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..aada69e37db57fd908f68ec103be9f47402017bd --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/81_\345\210\240\351\231\244\346\216\222\345\272\217\351\223\276\350\241\250\344\270\255\347\232\204\351\207\215\345\244\215\345\205\203\347\264\240 II/solution.md" @@ -0,0 +1,32 @@ +# 删除排序链表中的重复元素 II +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/82_\345\210\240\351\231\244\346\216\222\345\272\217\351\223\276\350\241\250\344\270\255\347\232\204\351\207\215\345\244\215\345\205\203\347\264\240/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/82_\345\210\240\351\231\244\346\216\222\345\272\217\351\223\276\350\241\250\344\270\255\347\232\204\351\207\215\345\244\215\345\205\203\347\264\240/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e851cc1fff375ff56128d8e8708aad1c71a11938 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/82_\345\210\240\351\231\244\346\216\222\345\272\217\351\223\276\350\241\250\344\270\255\347\232\204\351\207\215\345\244\215\345\205\203\347\264\240/solution.md" @@ -0,0 +1,32 @@ +# 删除排序链表中的重复元素 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/83_\346\237\261\347\212\266\345\233\276\344\270\255\346\234\200\345\244\247\347\232\204\347\237\251\345\275\242/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/83_\346\237\261\347\212\266\345\233\276\344\270\255\346\234\200\345\244\247\347\232\204\347\237\251\345\275\242/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..2088fb89d376890aad9d38ef33d07110a761fabb --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/83_\346\237\261\347\212\266\345\233\276\344\270\255\346\234\200\345\244\247\347\232\204\347\237\251\345\275\242/solution.md" @@ -0,0 +1,32 @@ +# 柱状图中最大的矩形 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/84_\346\234\200\345\244\247\347\237\251\345\275\242/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/84_\346\234\200\345\244\247\347\237\251\345\275\242/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..b8a342b81545ea6dcda5d73ebba028589b7c1791 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/84_\346\234\200\345\244\247\347\237\251\345\275\242/solution.md" @@ -0,0 +1,32 @@ +# 最大矩形 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/85_\345\210\206\351\232\224\351\223\276\350\241\250/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/85_\345\210\206\351\232\224\351\223\276\350\241\250/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..61ea209fa8ed2e3eb3c42876d373506277a784e9 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/85_\345\210\206\351\232\224\351\223\276\350\241\250/solution.md" @@ -0,0 +1,32 @@ +# 分隔链表 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/86_\346\211\260\344\271\261\345\255\227\347\254\246\344\270\262/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/86_\346\211\260\344\271\261\345\255\227\347\254\246\344\270\262/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..55cee10b453fada311a25456cac2b65e357baadd --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/86_\346\211\260\344\271\261\345\255\227\347\254\246\344\270\262/solution.md" @@ -0,0 +1,32 @@ +# 扰乱字符串 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/87_\345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\346\225\260\347\273\204/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/87_\345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\346\225\260\347\273\204/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d94366918f6a292f3a1cce028983f7a314214b97 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/87_\345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\346\225\260\347\273\204/solution.md" @@ -0,0 +1,32 @@ +# 合并两个有序数组 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/88_\346\240\274\351\233\267\347\274\226\347\240\201/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/88_\346\240\274\351\233\267\347\274\226\347\240\201/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..c2b364e8c8b5db9ac584916339a5208bd38b5084 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/88_\346\240\274\351\233\267\347\274\226\347\240\201/solution.md" @@ -0,0 +1,32 @@ +# 格雷编码 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/89_\345\255\220\351\233\206 II/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/89_\345\255\220\351\233\206 II/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..144d4dc9787dde56fdd0f58e13ccf3c080cf1d09 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/89_\345\255\220\351\233\206 II/solution.md" @@ -0,0 +1,32 @@ +# 子集 II +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/8_\345\233\236\346\226\207\346\225\260/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/8_\345\233\236\346\226\207\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..cf621d849d04ed7c295b2c426f837c97d6aefdc5 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/8_\345\233\236\346\226\207\346\225\260/solution.md" @@ -0,0 +1,101 @@ +# 回文数 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + cout << sol.isPalindrome(1121) << endl; + return 0; +} + +``` + +## 答案 +```cpp +class Solution +{ +public: + bool isPalindrome(int x) + { + string s = to_string(x); + for (int i = 0; i < s.length(); ++i) + { + if (s[i] != s[s.length() - i]) + return false; + } + return true; + } +}; +``` +## 选项 + +### A +```cpp + +class Solution +{ +public: + bool isPalindrome(int x) + { + if (x < 0) + return false; + double sum; + int m = x; + while (x) + { + sum = sum * 10 + x % 10; + x = x / 10; + } + if (m == sum) + return true; + else + return false; + } +}; +``` + +### B +```cpp +class Solution +{ +public: + bool isPalindrome(int x) + { + int midrev = 0; + if (x < 0 || (x % 10 == 0 && x != 0)) + return false; + while (x > midrev) + { + midrev = midrev * 10 + x % 10; + x /= 10; + } + return midrev == x || midrev / 10 == x; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + bool isPalindrome(int x) + { + long rev; + if (x < 0) + return false; + string str_x = to_string(x); + std::reverse(str_x.begin(), str_x.end()); + stringstream out(str_x); + out >> rev; + return x == rev; + } +}; +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/90_\350\247\243\347\240\201\346\226\271\346\263\225/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/90_\350\247\243\347\240\201\346\226\271\346\263\225/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..1d973d15143a1285a2315b8454dadfbb91be1a78 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/90_\350\247\243\347\240\201\346\226\271\346\263\225/solution.md" @@ -0,0 +1,32 @@ +# 解码方法 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/91_\345\217\215\350\275\254\351\223\276\350\241\250 II/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/91_\345\217\215\350\275\254\351\223\276\350\241\250 II/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..86990aaf08b763b16a0012b99711c8496513840a --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/91_\345\217\215\350\275\254\351\223\276\350\241\250 II/solution.md" @@ -0,0 +1,32 @@ +# 反转链表 II +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/92_\345\244\215\345\216\237 IP \345\234\260\345\235\200/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/92_\345\244\215\345\216\237 IP \345\234\260\345\235\200/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..13d48f00f282bb36e58fd14e223fe0f0d06acb04 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/92_\345\244\215\345\216\237 IP \345\234\260\345\235\200/solution.md" @@ -0,0 +1,32 @@ +# 复原 IP 地址 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/93_\344\272\214\345\217\211\346\240\221\347\232\204\344\270\255\345\272\217\351\201\215\345\216\206/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/93_\344\272\214\345\217\211\346\240\221\347\232\204\344\270\255\345\272\217\351\201\215\345\216\206/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..25c6332e887c31f4ffc37423229aa50c130934b8 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/93_\344\272\214\345\217\211\346\240\221\347\232\204\344\270\255\345\272\217\351\201\215\345\216\206/solution.md" @@ -0,0 +1,32 @@ +# 二叉树的中序遍历 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/94_\344\270\215\345\220\214\347\232\204\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221 II/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/94_\344\270\215\345\220\214\347\232\204\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221 II/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..3265d14f9f189bec51a510eb483d9c4724297d09 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/94_\344\270\215\345\220\214\347\232\204\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221 II/solution.md" @@ -0,0 +1,32 @@ +# 不同的二叉搜索树 II +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/95_\344\270\215\345\220\214\347\232\204\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/95_\344\270\215\345\220\214\347\232\204\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..461cbbfc763119bf4538b40f79b4d2852fdb3a78 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/95_\344\270\215\345\220\214\347\232\204\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221/solution.md" @@ -0,0 +1,32 @@ +# 不同的二叉搜索树 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/96_\344\272\244\351\224\231\345\255\227\347\254\246\344\270\262/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/96_\344\272\244\351\224\231\345\255\227\347\254\246\344\270\262/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..75c27a6879f4667f3548fcd4f1fd60fc8a1ced59 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/96_\344\272\244\351\224\231\345\255\227\347\254\246\344\270\262/solution.md" @@ -0,0 +1,32 @@ +# 交错字符串 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/97_\351\252\214\350\257\201\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/97_\351\252\214\350\257\201\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..a245a4ba17795343f7446e3b2297c1162c7000ed --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/97_\351\252\214\350\257\201\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221/solution.md" @@ -0,0 +1,32 @@ +# 验证二叉搜索树 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/98_\346\201\242\345\244\215\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/98_\346\201\242\345\244\215\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..1835be044e7e770253115b5ffc6a9ff825ae3f2b --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/98_\346\201\242\345\244\215\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221/solution.md" @@ -0,0 +1,32 @@ +# 恢复二叉搜索树 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/99_\347\233\270\345\220\214\347\232\204\346\240\221/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/99_\347\233\270\345\220\214\347\232\204\346\240\221/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..bdefbd6855ab7530b224cca0fd8a78672a3e5f4b --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/99_\347\233\270\345\220\214\347\232\204\346\240\221/solution.md" @@ -0,0 +1,32 @@ +# 相同的树 +以下错误的选项是? +## aop +### before +```cpp + +``` +### after +```cpp + +``` + +## 答案 +```cpp + +``` +## 选项 + +### A +```cpp + +``` + +### B +```cpp + +``` + +### C +```cpp + +``` diff --git "a/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/9_\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217\345\214\271\351\205\215/solution.md" "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/9_\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217\345\214\271\351\205\215/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..4f9f30aeb2b0631a7d5dcc0bba4232599c3371e9 --- /dev/null +++ "b/data/3.\347\256\227\346\263\225\351\253\230\351\230\266/1.leetcode/9_\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217\345\214\271\351\205\215/solution.md" @@ -0,0 +1,172 @@ +# 正则表达式匹配 +以下错误的选项是? +## aop +### before +```cpp +#include +using namespace std; +``` +### after +```cpp +int main() +{ + Solution sol; + string s = "aa"; + string p = "a"; + cout << sol.isMatch(s, p) << endl; + return 0; +} +``` + +## 答案 +```cpp +class Solution +{ +public: + bool isMatch(string s, string p) + { + return match(s, p, s.length() - 1, p.length() - 1); + } + bool match(const string &s, const string &p, int rs, int rp) + { + if (rp == -1 && rs == -1) + { + return true; + } + if (rs < -1 || rp <= -1) + return false; + if (p[rp] == '.') + { + return match(s, p, rs - 1, rp - 1); + } + else if (p[rp] == '*') + { + if (p[rp - 1] != s[rs] && p[rp - 1] != '.') + { + return match(s, p, rs, rp - 2); + } + else + { + return match(s, p, rs, rp - 2); + } + } + else + { + if (p[rp] != s[rs]) + { + return false; + } + else + { + return match(s, p, rs - 1, rp - 1); + } + } + } +}; + +``` +## 选项 + +### A +```cpp +class Solution +{ +public: + bool isMatch(string s, string p) + { + int lens = s.length(), lenp = p.length(); + if (lenp == 0) + return lens == 0; + if (lenp == 1) + { + if (lens == 0) + return false; + if (lens != 0 && (p[0] == s[0] || p[0] == '.')) + return isMatch(s.substr(1), p.substr(1)); + else + return false; + } + if (lenp >= 2) + { + if (p[1] != '*') + { + if (s.length() != 0 && (p[0] == s[0] || p[0] == '.')) + return isMatch(s.substr(1), p.substr(1)); + else + return false; + } + else + { + while (s.length() != 0 && (p[0] == s[0] || p[0] == '.')) + { + if (isMatch(s, p.substr(2))) + return true; + else + { + s = s.substr(1); + } + } + return isMatch(s, p.substr(2)); + } + } + } +}; +``` + +### B +```cpp +class Solution +{ +public: + bool first_match(string s, string p, int i, int j) + { + return s[i] == p[j] || p[j] == '.'; + } + + bool isMatch(string s, string p) + { + vector > dp(s.size() + 1, vector(p.size() + 1)); + dp[0][0] = true; + + for (int j = 2; j <= p.size(); j++) + { + dp[0][j] = p[j - 1] == '*' && dp[0][j - 2]; + } + for (int i = 0; i < s.size(); i++) + { + for (int j = 0; j < p.size(); j++) + { + + if (p[j] == '*') + { + dp[i + 1][j + 1] = dp[i + 1][j - 1] || first_match(s, p, i, j - 1) && dp[i][j + 1]; + } + else + { + dp[i + 1][j + 1] = first_match(s, p, i, j) && dp[i][j]; + } + } + } + return dp[s.size()][p.size()]; + } +}; +``` + +### C +```cpp +class Solution +{ +public: + bool isMatch(string s, string p) + { + + if (p.empty()) + return s.empty(); + bool first = !s.empty() && (p[0] == '.' || s[0] == p[0]); + if (p[1] == '*') + return first && isMatch(s.substr(1), p) || isMatch(s, p.substr(2)); + else + return first && isMatch(s.substr(1), p.substr(1)); + } +}; +```