网易笔试0820
四道题,说一下自己的思路,不一定对
1. ab两个数,你每次可以操作一个数去掉一位,最少操作几次使得a为b的倍数或者b为a的倍数。
思路,dfs,参数是两个由ab转换出的list和操作次数,dfs中for循环删除a或者b的一位,走完所有步骤,返回最小的res。
2. 给你一个数组,让你变成12121 23232这种,问你最少操作几次。
思路,模拟题,分奇数位和偶数位计算最大值,遍历数组,奇数位和奇数位的max作差,偶数位和偶数位作差,最后的差的和就是res(特别的,如果偶数位的max和奇数位的max相等,要给res+=n/2)。这个过了百分百。
3. red组成的字符串,好的e左右各一个r和d,顺序可以换,问你至少操作几次,使得好的e最多。
思路
对于奇数长度的字符串,结果一定是reder或者dered这种,于是构建这两种字符串,分别计算变换到前者和后者的差异字符个数,小者为答案。
对于偶数长度字符串,结果可以有一个冗余字符r或者d插入到r或d旁边。这个具体的后面我还没想清楚,所以只过了0.5。
4. 符合条件的三元组,index ijk顺序依次增大,numsi等于numsk,numsj小于其他两个数,问你有多少组。
思路,直接暴力做的,过了0.667,剪枝没写对。
得分15×0.13+20+30×0.52+35×0.6667=60.8845#网易笔试##笔经面经#
1. ab两个数,你每次可以操作一个数去掉一位,最少操作几次使得a为b的倍数或者b为a的倍数。
思路,dfs,参数是两个由ab转换出的list和操作次数,dfs中for循环删除a或者b的一位,走完所有步骤,返回最小的res。
2. 给你一个数组,让你变成12121 23232这种,问你最少操作几次。
思路,模拟题,分奇数位和偶数位计算最大值,遍历数组,奇数位和奇数位的max作差,偶数位和偶数位作差,最后的差的和就是res(特别的,如果偶数位的max和奇数位的max相等,要给res+=n/2)。这个过了百分百。
3. red组成的字符串,好的e左右各一个r和d,顺序可以换,问你至少操作几次,使得好的e最多。
思路
对于奇数长度的字符串,结果一定是reder或者dered这种,于是构建这两种字符串,分别计算变换到前者和后者的差异字符个数,小者为答案。
对于偶数长度字符串,结果可以有一个冗余字符r或者d插入到r或d旁边。这个具体的后面我还没想清楚,所以只过了0.5。
4. 符合条件的三元组,index ijk顺序依次增大,numsi等于numsk,numsj小于其他两个数,问你有多少组。
思路,直接暴力做的,过了0.667,剪枝没写对。
得分15×0.13+20+30×0.52+35×0.6667=60.8845#网易笔试##笔经面经#