京东笔试 对角线邻居 01问题 AC 73 73

 
对角线邻居 73%  
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;


public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.next());
        int[] x = new int[n];
        int[] y = new int[n];
        sc.nextLine();
        for(int i = 0 ; i < n ; i++){
              String[] inS = sc.nextLine().split(" ");
              x[i] = Integer.parseInt(inS[0]);
              y[i] = Integer.parseInt(inS[1]);
        }
        int res = 0 ;
        for (int i = 0 ; i < n ; i ++){
            for (int j = i+1 ; j < n ; j++){
                if (y[i] - y[j] ==0) continue;
                if (x[i] - x[j] ==0) continue;
                if (Double.valueOf(Math.abs(y[i]-y[j]))/Double.valueOf(Math.abs(x[i]-x[j]))==1) {
                    res++;
                }
            }
        }
        System.out.println(res);


    }

}






01问题 73%

import java.util.*;


public class Main1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String inS = sc.next();

        int[][] dp = new int[2][n];
        int countZero = 0 ;
        int countOne = 0;
        for (int i = 0 ; i < n ; i ++){
            if (inS.charAt(i) == '0') {
                countZero += 1;
                dp[0][i] = countZero;
                dp[1][i] = countOne;
            }
            else {
                countOne += 1;
                dp[0][i] = countZero;
                dp[1][i] = countOne;
            }
        }



        int[] res = new int[n];
        Arrays.fill(res,1);
        for (int i = 0 ; i < n ; i++){
            if (dp[0][i] == 0 ||dp[1][i] == 0) {
                res[i] = i + 1;
               continue;
            }
            for (int j = i-1 ; j >= 0 ; j--){

                if ( dp[0][j]!=0&&dp[1][j]!=0 &&Double.valueOf(dp[0][i])/Double.valueOf(dp[1][i]) == Double.valueOf(dp[0][j])/Double.valueOf(dp[1][j])){

                    res[i]++;
                }
            }
        }
        for (int resOut : res){
            System.out.print(resOut+" ");
        }
    }

}



#京东笔试##笔试题目##京东#
全部评论
第2题思路简洁易懂,确实应该想到的,楼主可以很强
1 回复 分享
发布于 2021-08-21 21:29
大佬们说说为什么只有73啊😥😥😥
点赞 回复 分享
发布于 2021-08-21 21:06
第一个是超时吧
点赞 回复 分享
发布于 2021-08-21 21:07
可以这样,复杂度O(n),能100,然后01那道完全不会,骗了9%🤣
点赞 回复 分享
发布于 2021-08-21 21:28
请问那个01题的动态规划式子是啥意思呀
点赞 回复 分享
发布于 2021-08-21 21:43
当时没有思路。。。 测试样例可以通过,具体思路:map中存储前i个的比值,如果map的keySet中没有当前比值,则put(当前比值, 1);如果有当前比值,那么更新比值对应的val值,即put(当前比值, map.get(当前比值) + 1)。需要注意当全部为0或全部为1的情况。 这个方法应该是超时的。。。
点赞 回复 分享
发布于 2021-09-01 17:03

相关推荐

伟大的烤冷面被普调:暨大✌🏻就是强
点赞 评论 收藏
分享
评论
4
3
分享
牛客网
牛客企业服务