随笔分类 - 算法能力全面提升综合题单 / 面试题速刷
摘要:1. 切割序列乘积 有一个序列a1,a2,...,an,牛牛将对这个序列切一刀,使其分为两个不相交的非空子序列,一个序列为a1,a2,...ap, 另一个序列为ap+1,...,an。牛牛切割的代价为两个字序列元素和的乘积,牛牛想知道切割代价最小是多少? 遍历即可 int main(int argc
阅读全文
摘要:1. 小红的文章匹配 小红书的第 i 篇文章有一个点赞数 ai 。小红认为,如果两篇不同的文章满足:点赞数通过位异或运算恰好得到 k ,那么这两篇文章是相似文章, 即ai xor aj=k 。现在小红收集到了 n 篇文章的点赞数,请帮助她计算出有多少对 (i,j) 是相似文章。输入描述 第一行输入两
阅读全文
摘要:1. 钱包 小苯有n个钱包,其中第i个钱包装了ai元,他每天都会恰好使用一个钱包中的钱去购物,尽可能多地购买 一种单价为k元的物品, 日复一日,直到所有钱包中的钱都分别买不起此物品。 在小苯在开始日复一日地购物前,可以向任意一些钱包中再加入一些钱,但总共加入的钱数不超过m. 现在小苯想知道,如果自己
阅读全文
摘要:1. 机器人走网格 小红书的冒险家们!今天,我们要进入一个充满挑战的高科技迷言。这是一张由小红书科技部最新研发的网格地图,每个格子都营着秘密一它们内置了自动滑行带!这些 滑行带会让所有进入它们的机器人自动翻一个特定方向滑行。 网格地图每个格子都藏着秘密一它们内置了自动滑行带!这些滑行带会让所有进入它
阅读全文
摘要:1. 树中删边 多多有一颗 n 个节点的树,树中每一条边都有一个权值。 多多还有一个长度为 n 的正整数序列:删除树中若干条边之后(或者不删),就会变成一个有 x 个连通块的图, 此时的得分为:剩余边权和 + ((两个可以互相到达的节点属于同一个连通块,注意一个孤点也是一个连通块) 多多可以删除图中
阅读全文
摘要:1. 最佳速通时间 小C准备参加某个游戏的速通比赛,为此他对该游戏速通了 n次, 每次速通记录可以用一个数组 A={a1,a2……am}表示, 其中a表示小C 从游戏开始到第i个游戏节点所花赛的时间,m 为游戏节点的个数。 请根据小 C 的速通记录计算出他的理论最佳速通时间, 理论最佳速通时问指:小
阅读全文
摘要:1. 三色石头 桌子上放了一排石头,有n个,每块石头的颜色可以是红色,绿色或蓝色。 现在要从这排石头取出的数个石头,以便剩余的石头里面,任何两颗相邻的石头具有不同的 颜色的(取出1块石头后,就认为两边的石头是相邻的)。 请根据输入的石头数量、排序和颜色,计算最少要取出几块石头? 贪心打卡题 int
阅读全文
摘要:1. 小苯买东西 小苯看中了一件价值为p元的物品,他手里有1个“打折券"和1个“立减券”。 两种优惠券可以都用在物品上,且使用顺序也是任意的。两种优惠券分别以整数x和y的方式给出。 打折券:如果当前物品价格为p,使用后,物品价格变为:x·p/100上取整。 立减券:如果当前物品价格为P,使用后,物品
阅读全文
摘要:1. 字符串谜题 小明获得了一项任务,任务是一个谜题,谜题的答案是一个长度为N的字母串。 小明试图寻找答案,整理出所有的字符串。为了不重复,他萌生了按字典序浏览单词的想法。 但是小明已经厌倦了手动计算每个字符串的下一个字符串,所以他想让你帮助他编写一个程序自动化实现这个过程。 编写一个程序,根据输入
阅读全文
摘要:1. 周期字符串 小红有一个长度为n的字符串s,由0、1和 * 组成,可以把*替换成0或者1, 小红想知道替换后的字符串的最短周期是多少,如果一个字符串每一个位置的字母都与后k位的字母相同,那么k即为该字符串的一个周期。 形式化的说,如果存在一个正整数k使得对于所有的 i属于[1,n - k] 都有
阅读全文
摘要:1. 时钟指针 小A的寝室里放着一个时钟。时钟有时针,分针,秒针三种指针。 在某些时刻,时钟会记录下当前时间,格式为 hh:mm:ss 。 时钟上看不出日期,每天零点,三根指针都会归零。 现在小A得到了一系列被记录的时间,且这些时间是按照先后顺序被记录的。 小A想让你算算,每两个时间点之间,秒针至少
阅读全文
摘要:1. 小美的姓名统计 小美写单词喜欢横着写,她记录了若干个人的名字,但是不小心加进去了一些无关的单词。 一个名字单词以大写字母开头,请你帮助她统计共有多少个人的名字。 简单输入处理 int main() { string cur; int res = 0; while(cin>>cur){ if(c
阅读全文
摘要:1. 给定两个正整数n,m,米小游想要求出n-m中的所有整数的哪个数字中4的数量加上 6 的数量最多。 如果有多个这样的数字,请输出最大的。例如某一个数字是 44624,则它有3个4,1个6,所以4和6的数量之和为 4。 打卡题 int main(int argc, char *argv[]) {
阅读全文
摘要:1. 拨动数字 已知小红每次可以把一个数字向下拨动,即9变成8,8变成7...1变成0,0变成9。 她想知道从第一个状态变成第二个状态需要最少拨动多少次? 简单打卡 int main() { string a,b; cin>>a>>b; int res =0; for(int i=0;i<a.siz
阅读全文
摘要:1. 米小游的原石计划 为了抽到心爱的五星角色,米小游需要至少 n 颗原石。 目前米小游手里没有任何的原石,距离卡池结束还有 m 天。 原石有两种获取方式,一种是充小月卡,另一种是直接买。 1.充一次月卡需要 30 块钱,可以增加 30 天的祝福次数,每天只能领一次祝福(90原石),购买当天可额外领
阅读全文
摘要:1. 100的倍数 给你一个整数,请你判断0~N之间有多少个数是100的正整数倍。输入描述:输入的第一行给出一个整数N 输出描述:输出0~N之间有多少个数是100的整数倍。 简单题 int main() { string st; cin>>st; int n=strlen(st); if (n<=2
阅读全文
摘要:1. 减一 给出一组数,求出最长的子串。使得这个子串中的数最大值和最小值的差值最大为1。 如1 5 4 1 2 4 2 5 5。最长子串为5 4 4 5 5,长度为5 红黑树计数即可 int main(int argc, char *argv[]) { int n; cin>>n; vector<i
阅读全文
摘要:1. 判断括号字符串有效 给定一个只包括 '(',')','{','}','[',']' 的字符串 s(1 <= s.length <= 1e4) , 判断字符串是否有效。如果有效,输出有效括号的个数。如果无效,则输出False。 简单的栈 int main() { int t; cin>>t; c
阅读全文
摘要:1. 无人机巡逻 一块地用一个从0开始素引的二维二送制矩阵block表示,其中0表示空闲地块,1表示放有障碍物购地块。 在每个测试毛列中,地的左上角永远是空闲的。一架无人机面面向右侧侧,在左上角开造巡逻。无人机将一直前进,直到抵达地的边界或遇到障碍物地时,无人机将会顺时针旋转90度并重复以上步,初始
阅读全文
摘要:1. 桩子与雪 村子里有一些桩子,从左到右高度依次为1,1+2,1+2+3…,每两颗桩子之间的间隔为1.现在下了一场大雪, 但是不知道雪下了多厚,现在给你两个数字,这是雪后某相邻两个桩子在雪面的高度,请你通过这两个数字计算雪的厚度。 简单计算 int main(int argc, char *arg
阅读全文