【笔经】【贝壳】

1.求一个字符串最少修改多少次能变成回文串
只过了30%,用的dp,内存超出了,请问还有更好的做法吗?显示的是字符串长度n<100时的测试数据是30%,n<10000时的测试数据是100%。
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        String str = in.next();
        int[][] dp = new int[n][n];
        for (int i = n - 2; i >= 0 ; i--) {
            for (int j = i + 1; j < n; j++) {
                if(str.charAt(i) == str.charAt(j)){
                    dp[i][j] = dp[i+1][j-1];
                }
                else{
                    dp[i][j] = dp[i+1][j-1] + 1;
                }
            }
        }
        System.out.print(dp[0][n-1]);
}
2.一个m*n的方块,种花,每个方块必须有花,每种花的个数必须相等,每个相邻方块的花的种类必须不同,满足这三个条件,求最少的花的种类。
没做。求做法
3.一个数组,求它的连续子数组的或运算取得最大值时,这个连续子数组的长度是多少?
也是用的dp,又是内存超出,只过了50%,菜鸡落泪。
4.没看,图类型的。

#贝壳找房##笔试题目#
全部评论
第一题双指针就能过。。
1
送花
回复 分享
发布于 2020-08-11 21:10
第二题,n*m的最小质因子,第四题最小生成树搞成最大生成树就好了,注意大数
点赞
送花
回复 分享
发布于 2020-08-11 21:10
秋招专场
校招火热招聘中
官网直投
第一题就是双指针……超简单的……
点赞
送花
回复 分享
发布于 2020-08-11 21:11
老哥,想复杂了啊。第一题双指针,不相等的加1,最后返回就行了...
点赞
送花
回复 分享
发布于 2020-08-11 21:12
第三题用滑动窗口可解
点赞
送花
回复 分享
发布于 2020-08-11 21:16

相关推荐

点赞 2 评论
分享
牛客网
牛客企业服务