随笔分类 - 笔试题
摘要:我参加的机试是昨天晚上19:00到21:00,三道编程题目 由于考试期间在牛客网需要录屏所以没办法得到准确题目(华为允许使用本地IDE),我只能按照记忆描述 ##题目1 大概意思是:有n个人,每一个人都有一种礼物(礼物种类有两种,1是A类,2是B类),求三个人礼物数量(同种类)相加和最大,如果存在多
阅读全文
摘要:股票1(只买卖1次) 注意:这个不仅仅是找到数组最大最小就行了,注意时间顺序 class Solution { public int maxProfit(int[] prices) { if(prices.length==0||prices==null) return 0; int max=0,mi
阅读全文
摘要:题解 nums[i]为最左端的数,nums[L]为中间,nums[R]为最右端数, 最外层循环遍历最左端,nums[L]最初指向nuns[i+1],nums[R]最初指向nums[nums.length-1],根据sum变化不断移动 代码 class Solution { public static
阅读全文
摘要:有n个数1,2,3,4,...n依次入栈,不必等全部的数入完再出,问有多少个出栈顺序? 解: 设问题答案是$f(n),f(1)=1,f(2)=2$ 分n种情况: 1最后出来:$f(n)$ k最后出来: $f(k 1) f(n k)$ 所以 $f(n+1)=f(n)+f(n 1)f(1)+f(n 2)
阅读全文
摘要:分析:bitset对象的使用 c++代码如下: 分析:最初我是想定义f[i][j]来表示i天买股票,第j天卖出所得到的收益,如果这样做的话,之后寻找最大值的时候会出现f[i][j]+f[t][k](i<=j<=t<=k)需要四重循环,应该会爆,我没试 我的目标是找到两次收益和的最大值,并且必须第一个
阅读全文
摘要:分析:这是一道关于能否构成三角形的题目 构成三角形的条件:a+b>c(前提a<=b<=c,也就是排序)再加上a>0&&b>0&&c>0(题目不存在异常数据不考虑) 所以按照题目要求直接升序排序之后再判断a[i]+a[i+1]>a[i+2],如果存在直接数量加1 解释一下为什么是a[i]+a[i+1]
阅读全文
摘要:解题:利用c++的multiset的count和erase进行解题 相同类型的题目:https://www.cnblogs.com/cstdio1/p/11377028.html c++代码如下:
阅读全文
摘要:分析:递归或者dp,爬楼梯很老的一道题目 当前台阶方法数 = 所有一次可到达当前台阶方法数的和 最初的题目是只能上1、2、3个台阶所以dp[i]+=dp[i-1]+dp[i-2]+dp[i-3]; 这个是1,2,4,8,16,32,就是2^n方,也就是只要t=i-2^n>=0,dp[i]+=dp[i
阅读全文
摘要:分析:枚举a和b,在排序后的数组里二分查找c=-a-b。 注意:在找c的时候不能和a和b重复。 【参考代码】
阅读全文
摘要:分析:从题目中就可以看出这是一道找规律的题,不能直接硬算,数据太大1e9,你开数组就是找死。。。。 注意:n*m的矩阵和m*n的矩阵在这里是一样的,因为一个元素的最后状态只与与其相邻的元素有关(所以只讨论m>=n情况) 翻转次数 = 相邻元素数 + 1(自身翻转一次) 一般矩阵:位于中间的元素周围有
阅读全文
摘要:题目分析:假设一个人的物理攻击为A,法术攻击为B,如果进入阵营1贡献是A,如果进入阵营2贡献是B,进入阵营3贡献为(A+B)/2; 现在要考虑进入哪个阵营贡献最大就去哪个阵容,如果所有的人都是这么选择就可以得到全局的最大和。 比较常用的就是做差: 对阵营1的贡献 - 对阵营2的贡献 = A - B
阅读全文
摘要:分析:如果输入12345,移位分别得到:23451、34512、45123、51234、12345(重复),说明循环次数最多超过字符串长度就会重复 利用set的去重特性,和string的erase就可以轻松得到代码 c++代码如下:
阅读全文
摘要:题目描述 打开了美了么外卖,选择了一家店,你手里有一张满X元减10元的券,店里总共有n种菜,第i种菜一份需要A_i元,因为你不想吃太多份同一种菜,所以每种菜你最多只能点一份,现在问你最少需要选择多少元的商品才能使用这张券。 打开了美了么外卖,选择了一家店,你手里有一张满X元减10元的券,店里总共有n
阅读全文
摘要:小Q爬塔 题目描述: 小Q 正在攀登一座宝塔,这些宝塔很特别。塔总共有 n 层,但是每两层之间的净高却不相同,所以造成了小Q 爬过每层的时间也不同。如果某一层的高度为 x,那么爬过这一层所需的时间也是 x。小Q 还会使用一种魔法,每用一次就可 以让他向上跳一层或两层,但是每次跳跃后小 Q 都将用完魔
阅读全文
摘要:题目:请您写一个reverseAdd函数,该函数根据输入的两个正整数a和b,然后分别将他们的数字按照高位在右边的方式反转后求和。例如:reverseAdd(123,456)== 321 + 654 == 975程序原型:int reverseAdd(int a,int b)输入:输入的a,b参数均为
阅读全文
摘要:题目描述 输入两个字母串,将两个字母串都包含的字母用'_'替换后,输出两个字母串的剩余部分。输入描述: 输入两个字符串,字符串最大长度为100。字符串只包含字母,不可能为空串,区分大小写。输出描述: 按字符串顺序输出处理后的字符串 示例1 输入 abcd bdef 输出 a_c_ __ef 题目描述
阅读全文
摘要:原文链接:https://www.sohu.com/a/252870668_818692
阅读全文
摘要:示例输入: 输出: 题目: 示例输入: 输出: 示例输入: 输出:
阅读全文
摘要:#include #include #include using namespace std; const int maxn=10005; int a[maxn][maxn]; bool vis[maxn][maxn]={false};//是否访问数组 int main () { int m,n;//m行n列的矩阵 int i,j; int cnt=0;//计算...
阅读全文

浙公网安备 33010602011771号