首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

刷题记-XX

前言

以后不打 Div.3 了,会打 Div.2 和 Div. 1,因为 Div.3 太简单了(划掉)(HouZAJ这只渣渣F题WA了6遍还在这里BB)

A. Wrong Subtraction

题意

给定整数n和k,k为操作次数,一次操作为:若n结尾非0则减1,若n结尾为0则把0删除,问最后的n是什么(题目数据保证最后的n是正数)

思路

大体上只是模拟,但是要加快模拟速度,对于结尾非0的,如果k还有剩余就直接求余,不足就慢慢减1,如果结尾是0的就除10,循环到k为0

B. Two-gram

题意

求作为子串在给定字符串中出现次数最多的字母对(如AA,AB,BA之类的由两个字母组成的字符串)

思路

hash思想,把字母对当作数组下标存起来,每次扫到有这种字母对则对应位置的数组元素值++,最后扫一遍最大的出现的位置,把位置还原为字母对

C. Less or Equal

题意

给定一个数组,求一个正整数x能满足有k个数小于或等于x,无解输出-1

思路

排序之后,直接看第k位和第k+1位是否相同,相同必定无解,同时如果给定的k=0,而数组中最小的元素又为1,那也是无解的,排除这两种情况后,当k!=0的时候,x可以直接等于第k位的元素,符合要求,当k=0的时候直接输出1

D. Divide by three, multiply by two

题意

给定数组,将数组元素重新排序,使得后一个元素是前一个元素/3或*2的结果

思路

因为数组最多100个元素,所以可以直接把答案搜出来,用set来标记元素是否在数组中,直到DFS的搜索深度能够达到数组元素个数,这时把答案保存下来即可。另外,每次搜/3和*2,最后答案还得倒过来,所以可以直接搜索为*3和/2,保存之后的答案无需倒置

E. Cyclic Components

题意

给定一张图,求图中连通分量是单圈的个数

思路

其实可以想到,单圈中每个点的度数均为2,因此用并查集得出连通分量,然后再去判断连通分量中的每个点是否都是度数为2的点,最后扫一遍得到答案

F. Consecutive Subsequence

题意

求最长连续递增子序列,输出下标

思路

实际上可以边读边dp,dp状态方程为 dp[x] = dp[x - 1] + 1,由于x太大,不能用数组保存为下标,所以使用map,dp过程中还有记录x对应在数组中的下标,以及记录前驱的位置,最终找到最大值及其对应下标,并递归输出即可

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180509G1ZD8V00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券