模拟
error0318
这个作者很懒,什么都没留下…
展开
-
LeetCode 941. 有效的山脉数组
题目链接:LeetCode 941. 有效的山脉数组题意: 给定一个整数数组A,如果它是有效的山脉数组就返回true,否则返回false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3 在0 < i< A.length - 1条件下,存在i使得: A[0] < A[1] < ... A[i-1] < A[i] A[i] > A[i+1] > ... > A[A.le...原创 2020-11-03 07:31:00 · 147 阅读 · 0 评论 -
LeetCode 1640. 能否连接形成数组
题目链接:LeetCode 1640. 能否连接形成数组题意:给你一个整数数组arr,数组中的每个整数互不相同。另有一个由整数数组构成的数组pieces,其中的整数也互不相同。请你以任意顺序连接pieces中的数组以形成arr。但是,不允许对每个数组pieces[i]中的整数重新排序。如果可以连接pieces中的数组形成arr,返回true;否则,返回false。解题思路: 判断每个数组的起始元素能否拼接到原数组上,然后 最后添加...原创 2020-11-02 17:43:02 · 292 阅读 · 0 评论 -
LeetCode 349. 两个数组的交集
题意:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]解题思路: 使用unordered_set 存储数组的元素,目的是去重,判断第二个集合中是否有第一个集合中的元素即可代码:class Solution {public: vector<int> intersection(vector<int>& nums1, vector<...原创 2020-11-02 16:42:08 · 168 阅读 · 1 评论 -
projectEuler problem 17 .Number letter counts
题目链接:17 .Number letter counts题意:If the numbers 1 to 5 are written out in words: one, two, three, four, five, then there are 3 + 3 + 5 + 4 + 4 = 19 letters used in total.If all the numbers from 1 to 1000 (one thousand) inclusive were written out in wo原创 2020-09-18 12:33:58 · 179 阅读 · 2 评论 -
剑指Offer编程题---翻转单词顺序列
题目链接:翻转单词顺序列题意:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么? 解题思路: 先将单词分离出来,然后进行拼接就行class Solution {...原创 2020-09-16 18:04:27 · 111 阅读 · 0 评论 -
剑指Offer编程题---把字符串转换成整数
题目链接:把字符串转换成整数题意:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0解题思路: 判断首位元素是否为 + - ,然后遍历字符串,组成数字,如果有其他元素,直接返回0class Solution {public: int StrToInt(string str) { ...原创 2020-09-16 17:38:03 · 159 阅读 · 0 评论 -
LeetCode 1583. 统计不开心的朋友
题目链接:LeetCode 1583. 统计不开心的朋友题意:给你一份n位朋友的亲近程度列表,其中n总是偶数。对每位朋友i,preferences[i]包含一份按亲近程度从高到低排列的朋友列表。换句话说,排在列表前面的朋友与i的亲近程度比排在列表后面的朋友更高。每个列表中的朋友均以0到n-1之间的整数表示。所有的朋友被分成几对,配对情况以列表pairs给出,其中pairs[i] = [xi, yi]表示xi与yi配对,且yi与xi配对。...原创 2020-09-14 21:20:08 · 254 阅读 · 0 评论 -
LeetCode 1582. 二进制矩阵中的特殊位置
题目链接:LeetCode 1582. 二进制矩阵中的特殊位置题意: 给你一个大小为rows x cols的矩阵mat,其中mat[i][j]是0或1,请返回矩阵mat中特殊位置的数目。特殊位置定义:如果mat[i][j] == 1并且第i行和第j列中的所有其他元素均为0(行和列的下标均从 0 开始),则位置(i, j)被称为特殊位置。示例 1:输入:mat = [[1,0,0], [0,0,1], ...原创 2020-09-14 21:14:47 · 202 阅读 · 0 评论 -
projectEuler Problem 11 Largest product in a grid
题目链接:11 Largest product in a grid题意: 给一个20 * 20的网格,求相邻的最大乘积, 同一行,同一列,同一条斜线上解题思路: 模拟#include <iostream>using namespace std;int g[25][25];int main() { int n = 20, ans = 0; for(int i = 0; i < n; i++) { for(int j = 0; j < n; ...原创 2020-09-12 20:32:00 · 130 阅读 · 0 评论 -
projectEuler Problem 9.Special Pythagorean triplet
题目链接:9.Special Pythagorean triplet题意: 求 a * b * c要求 a + b + c = 1000 a * a + b * b = c * c解题思路: 直接模拟 #include <bits/stdc++.h>using namespace std;typedef long long ll;ll ans = 1;int main() { for(int a = 1; a < 5...原创 2020-09-10 09:49:29 · 133 阅读 · 0 评论 -
LeetCode 151. 翻转字符串里的单词
题目链接:LeetCode 151. 翻转字符串里的单词题意: 给定一个字符串,逐个翻转字符串中的每个单词。输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。解题思路: 将字符串中分割成单词,放入数组中,然后反向拼接class Solution {public: string r...原创 2020-09-09 15:00:13 · 115 阅读 · 0 评论 -
ProjectEuler problem3.Largest prime factor
题目链接:3.Largest prime factor题意:求600851475143 的最大质因子解题思路: 分解质因子#include <bits/stdc++.h>using namespace std;const int maxn = 300005;int main() { long long num = 600851475143; int k = 3; // 由于从肉眼 判断出此数不能整除2,所以从3开始 while(num > 1) { .原创 2020-09-08 08:23:23 · 121 阅读 · 0 评论 -
ProjectEuler problem2.Even Fibonacci numbers
题目链接:2.Even Fibonacci numbers题意: 求斐波那契数列中,小于四百万的 前n项 偶数值的和解题思路: 简单模拟....#include <bits/stdc++.h>using namespace std;const int maxn = 300005;int main() { int f1 = 1; int f2 = 2; int f3 = 0, ans = 2; while(f3 < 4000000) { ...原创 2020-09-08 08:21:00 · 107 阅读 · 0 评论 -
ProjectEuler Problem1.Multiples of 3 and 5
题目链接:1.Multiples of 3 and 5题意:求小于1000的3和5的倍数的和解题 可以使用循环,也可以直接分析,等差数列求和(注意,3和5的公倍数只需计算一次,多计算的减去)#include <bits/stdc++.h>using namespace std;const int maxn = 300005;int main() { int ans = 0; ans += (995 / 5) * (5 + 995) / 2; ans += ...原创 2020-09-08 08:15:14 · 134 阅读 · 0 评论 -
LeetCode 1566. 重复至少 K 次且长度为 M 的模式
题目链接:LeetCode 1566. 重复至少 K 次且长度为 M 的模式题意: 给你一个正整数数组arr,请你找出一个长度为m且在数组中至少重复k次的模式。模式是由一个或多个值组成的子数组(连续的子序列),连续重复多次但不重叠。 模式由其长度和重复次数定义。如果数组中存在至少重复k次且长度为m的模式,则返回true,否则返回false。解题思路; 将数组拼接成字符串,然后从总串中查看。class Solution { ...原创 2020-09-07 17:31:24 · 174 阅读 · 0 评论 -
LeetCode 1561. 你可以获得的最大硬币数目
题目链接:LeetCode 1561. 你可以获得的最大硬币数目题意: 有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币:每一轮中,你将会选出任意3 堆硬币(不一定连续)。 Alice 将会取走硬币数量最多的那一堆。 你将会取走硬币数量第二多的那一堆。 Bob 将会取走最后一堆。 重复这个过程,直到没有更多硬币。给你一个整数数组piles,其中piles[i]是第i堆中硬币的数目。返回你可以获得的最大硬币数目。解题思路: 将数组排序,然...原创 2020-09-07 17:06:11 · 319 阅读 · 3 评论 -
LeetCode 1560. 圆形赛道上经过次数最多的扇区
题目链接:LeetCode 1560. 圆形赛道上经过次数最多的扇区题意: 给你一个整数n和一个整数数组rounds。有一条圆形赛道由n个扇区组成,扇区编号从1到n。现将在这条赛道上举办一场马拉松比赛,该马拉松全程由m个阶段组成。其中,第i个阶段将会从扇区rounds[i - 1]开始,到扇区rounds[i]结束。举例来说,第1阶段从rounds[0]开始,到rounds[1]结束。请你以数组形式返回经过次数最多的那几个扇区,按扇区编号升...原创 2020-09-07 17:03:21 · 156 阅读 · 0 评论 -
LeetCode 1577. 数的平方等于两数乘积的方法数
题目链接:LeetCode 1577. 数的平方等于两数乘积的方法数题意: 给你两个整数数组nums1和nums2,请你返回根据以下规则形成的三元组的数目(类型 1 和类型 2 ):类型 1:三元组(i, j, k),如果nums1[i]2== nums2[j] * nums2[k]其中0 <= i < nums1.length且0 <= j < k < nums2.length 类型 2:三元组(i, j, k),如果nums2...原创 2020-09-07 16:47:54 · 272 阅读 · 0 评论 -
LeetCode 1576. 替换所有的问号
题目链接:LeetCode 1576. 替换所有的问号题意: 给你一个仅包含小写英文字母和'?'字符的字符串s<var> </var>,请你将所有的'?'转换为若干小写字母,使最终的字符串不包含任何连续重复的字符。注意:你不能修改非'?'字符。题目测试用例保证除'?'字符之外,不存在连续重复的字符。在完成所有转换(可能无需转换)后返回最终的字符串。如果有多个解决方案,请返回其中任何一个。可以证明,在给定的约束条件下,答案总是存在的...原创 2020-09-07 16:38:33 · 336 阅读 · 0 评论 -
LeetCode 1534. 统计好三元组
题目链接:LeetCode 1534. 统计好三元组题意: 给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。 0 <= i < j < k <arr.length | arr[i] - arr[j] | <= a | arr[j] - arr[k] | <= b ...原创 2020-08-28 11:30:25 · 250 阅读 · 0 评论 -
LeetCode 657. 机器人能否返回原点
题目链接:LeetCode 657. 机器人能否返回原点题意: 在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在(0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向右移动一次,“L” 将始终向左移...原创 2020-08-28 08:24:42 · 170 阅读 · 0 评论 -
codeforces 1400 C. Binary String Reconstruction
题目链接:codeforces 1400 C. Binary String Reconstruction题意: 给一个二进制字符串 w ,一个变量 x ,规则为if the characterwi−x exists and is equal to1, thensisiis1(formally, ifi>x and wi−x=1, thensi=si=1); if the characterwi+x exists and is equal to1, then...原创 2020-08-26 16:03:29 · 298 阅读 · 1 评论 -
codeforces 1400A. String Similarity
题目链接:codeforces 1400A. String Similarity题意: 如果一个字符串 s 和另一个字符串 t 长度相同,某个位置对应相等,那么定义这两个字符串 相似。10010and01111aresimilar(they have the same character in position4); 10010and11111aresimilar; 111and111aresimilar; 0110and1001are notsim...原创 2020-08-26 15:07:21 · 194 阅读 · 0 评论 -
LeetCode 1557. 可以到达所有点的最少点数目
题目链接:LeetCode 5480. 可以到达所有点的最少点数目题意: 给你一个 有向无环图, n个节点编号为 0到 n-1,以及一个边数组 edges,其中 edges[i] = [fromi, toi]表示一条从点fromi到点toi的有向边。找到最小的点集使得从这些点出发能到达图中所有点。题目保证解存在且唯一。你可以以任意顺序返回这些节点编号输入:n = 6, edges = [[0,1],[0,2],[2,5],[3,4],[4,2]]输出:[...原创 2020-08-23 09:22:52 · 342 阅读 · 0 评论 -
LeetCode 1556. 千位分隔数
题目链接:leetCode 5479. 千位分隔数题意:给你一个整数n,请你每隔三位添加点(即 "." 符号)作为千位分隔符,并将结果以字符串格式返回。输入:n = 1234输出:"1.234"输入:n = 123456789输出:"123.456.789"输入:n = 987输出:"987"解题思路: 直接模拟class Solution { /** * @param Integer $n * @return String...原创 2020-08-23 09:09:45 · 279 阅读 · 0 评论 -
LeetCode 1550. 存在连续三个奇数的数组
题目链接:LeetCode 1550. 存在连续三个奇数的数组题意: 给你一个整数数组arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回true;否则,返回false。解题思路: 直接判断就好,注意下边界class Solution { /** * @param Integer[] $arr * @return Boolean */ function threeConsecutiveOdds($ar...原创 2020-08-20 22:10:48 · 226 阅读 · 0 评论 -
LeetCode 1541. 平衡括号字符串的最少插入次数
题目链接:LeetCode 1541. 平衡括号字符串的最少插入次数题意: 给你一个括号字符串s,它只包含字符'(' 和')'。一个括号字符串被称为平衡的当它满足:任何左括号'('必须对应两个连续的右括号'))'。左括号'('必须在对应的连续两个右括号'))'之前。比方说"())","())(())))" 和"(())())))"都是平衡的,")()","()))" 和"(()))"都是不平衡的。你可以在任意位置插入字符 '(' 和 ')' ...原创 2020-08-17 15:56:04 · 565 阅读 · 0 评论 -
LeetCode 1539.第k个缺失的正整数
题目链接:LeetCode 1539. 第 k 个缺失的正整数题意: 给你一个严格升序排列的正整数数组arr和一个整数k。请你找到这个数组里第k个缺失的正整数。解题思路: 暴力模拟就可以class Solution { /** * @param Integer[] $arr * @param Integer $k * @return Integer */ function findKthPosit...原创 2020-08-17 11:46:56 · 329 阅读 · 0 评论 -
LeetCode 796.旋转字符串
题目链接:796. 旋转字符串题意: 给定两个字符串, A和B。 A的旋转操作就是将A 最左边的字符移动到最右边。例如, 若A = 'abcde',在移动一次之后结果就是'bcdea'。如果在若干次旋转操作之后,A能变成B,那么返回True。解题思路: 把A和A拼接起来,判断B是否存在拼接起来的字符串中,如果存在,那么返回true,否则返回false注:空字符串也是符合class Solution { /** * @param Stri...原创 2020-08-15 22:29:50 · 125 阅读 · 0 评论 -
LeetCode 989.数组形式的整数加法
题目链接:989. 数组形式的整数加法题意: 对于非负整数X而言,X的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果X = 1231,那么其数组形式为[1,2,3,1]。给定非负整数 X 的数组形式A,返回整数X+K的数组形式。解题思路: 先将 数字K转换为数组,以数组的形式相加注意进位代码class Solution { /** * @param Integer[] $A * @param Integer ...原创 2020-08-15 21:49:29 · 151 阅读 · 0 评论 -
LeetCode 1544整理字符串
题目链接:1544整理字符串题意: 给出一个字符串,如果相邻的两个字符 s[i] 是小写字符,s[i+1]是相同的大写字符,例如:e和E,那么这两个字符可以消掉,问最终的字符串为什么解题思路: 用一个栈保存字符串,当后一个和栈顶的满足情况时,pop出栈顶元素,返回最终栈里的元素因为今后可能要做PHP(要么就是GO)后端,为了练习,所以今后使用PHP写算法,但是算法思想都一样,只是换了个语言代码class Solution { /** * @par...原创 2020-08-15 13:03:17 · 310 阅读 · 0 评论 -
牛客小白月赛26:I-恶魔果实
题目链接:I-恶魔果实题意:牛牛得到了一堆神奇的恶魔果实,每个恶魔果实都给了牛牛一个改变数字的能力,可以把数字a变成数字b,现在牛牛有一个数字x,他想知道吃完这n个恶魔果实后,他可以把数字x变成多少种的数。注:每一个恶魔果实的能力可以重复使用多次,当然也可以不用,存在相同能力的恶魔果实.解题思路: 很明显,每个数能换到其他数的乘积就是答案,直接用三重for循环判断#include<bits/stdc++.h> #define ll long longusing ..原创 2020-06-21 10:01:26 · 340 阅读 · 1 评论 -
牛客网字节跳动算法题:找零
题目链接:找零题意:初始有1024元,花费n元,问剩下的钱 最少 能换多少枚硬币,硬币面额为 1, 2, 4, 16, 64解题思路: 先换面额最大的,再换次大的.....#include <bits/stdc++.h>using namespace std;long long mod = 99997867;long long a[1000001];int main(){ int n; cin >> n; int ans =...原创 2020-05-31 20:00:35 · 243 阅读 · 0 评论 -
牛客网字节跳动算法题:万万没想到之聪明的编辑
题目链接:万万没想到之聪明的编辑 题意:处理一个字符串1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello2. 两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello3. 上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,应该优先考虑修复AABB,结果为AABCC解题思路:一个指针负责处理原字符串,一个指针负责进行答案原创 2020-05-31 18:35:49 · 332 阅读 · 0 评论 -
C++大数相乘(模拟)
题意:给出两个特别大的数,求两数相乘结果。数长度为200位,数最大可能到达10的200次方#include <bits/stdc++.h>using namespace std;string multiply(string num1, string num2) { if(num1 == "0" || num2 == "0"){ // 如果有0,直接返回 return "0"; } string ans = ""; int a[550]; memset(a原创 2020-05-27 21:23:47 · 330 阅读 · 0 评论 -
codeforces 1281C. Cut and Paste(模拟)
C. Cut and Paste题目链接:codeforces 1281C题意: 题目较长,举例说明,T组样例,X次操作,给一个只包含‘1’‘2’‘3’的字符串s,在对s进行x次操作后,问s长度举例:x = 5 ,s = 231第一次操作: ...原创 2020-03-12 13:42:21 · 512 阅读 · 0 评论 -
2019牛客多校第六场D -Move
题意: 给出 k个箱子,n个物品的体积,问装箱子最小多大题解: 暴力,每个箱子的最小从 sum / k 开始,最大为sum(sum为物品的体积和)#include <bits/stdc++.h>using namespace std;const int maxn = 1000 + 7;int a[maxn], n, k, used[maxn];bool...原创 2019-08-14 10:01:45 · 176 阅读 · 0 评论 -
2019牛客多校第七场 A.String ,B.Irreducible Polynomial, J.A+B problem
A.String题意: 给一个字符串,将字符串拆成尽可能少的几个字典序最小的字符串 举例: "0101" is perfect as it is the smallest string among ("0101", "1010", "0101", "1010").后面的字符插到第一个位置111011110 答案 :111 01111 0(111 在字符串111的...原创 2019-08-14 14:46:02 · 146 阅读 · 0 评论 -
codeforces 1030C. Vasya and Golden Ticket
题目链接:codeforces 1030C题意: 给 n 个数字, 问能否将其分为多段,使每一段的和相等题解: 模拟:将每一段都列出来,判断是否可能AC代码:c++#include <bits/stdc++.h>using namespace std;int main(){ int n, a[105]; memset(a, 0, sizeof(...原创 2019-08-28 18:25:47 · 202 阅读 · 0 评论 -
codeforces 1003A. Polycarp's Pockets,C. Intense Heat(暴力)
A. Polycarp's Pockets题目链接:codeforces 1003A题意: 给n个数,要求相同的数不能放在一个口袋,问最少需要多少个口袋题解: 求出最多的相同数的个数,就是答案#include<cstdio>#include<cstring>int main(){ int n; int a[105]; mem...原创 2019-09-04 21:35:18 · 274 阅读 · 0 评论