给两个个数字AB. 求是否通过同时增加两个数或者同时减少两个数 得到最大的gcd. 如果能 需要同时加.减几? 典型的求gcd缺和gcd无关的题 因为同增加/减少 所以差值一样 所以gcd最大就是差值 因为gcd(0max(AB))最大. 然后几步嘛 就是求比较小的数到差值的倍数的大小 求余即可.
给一个数组 求有多少对数 里面的数字差等于index差. 数字差= index差 可以转化成 数字与index的差等于另一个数字与index的差. 所以用set找即可. 注意问的是多少对pair 最后要乘起来后/2
给一个整数n 问[1n]的区间中有多少个digit全部相同的数字. 这题就看一下啥时候想通 1到9有9个 然后11到99有9个 111到999有9个...所以看出来是和1的个数与最高项的比有关.
给一个string 问是不是有重复出现过的不连续的char. 用set直接解决即可.
给一个数组 求两个数字相乘等于index想加的pair的个数. 因为是index想加 所以已知index的大小是从3(1+2)到2*n. 我们就按个找每个数 看看有多少pair. 因为A[i]*A[j]=[12*n] 那么就知道其中一个是的范围肯定是[1 sqrt(n)]. 所以只要是i能整除j的 都是答案的可能性.
给n个数字 从1开始到n 求距离最小的每个数都不在自己位置上的数组. 因为要距离最小 所有前后swap一下即可. 注意如果是奇数要多swap一下.