重排数列和代码碎片的ac代码,求魔幻王国的代码

1.代码碎片

package nowcoder.netease0909;

import java.text.DecimalFormat;
import java.util.Scanner;

public class Q1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String str = sc.next();
            System.out.println(getAVG(str));
        }
    }

    private static String getAVG(String str) {
        char[] c = str.toCharArray();
        int sum = 0;
        int time = 0;
        int temp = 1;
        int p = 0, q = 0;
        while (q < c.length) {
            if (c[q] == c[p]) {
                q++;
            } else {
                sum += (q - p);
                time++;
                p = q;
            }
        }
        if (p == q) {
            sum++;
            time++;
        } else {
            sum += (q - p);
            time++;
        }
        DecimalFormat df = new DecimalFormat("0.00");
        return df.format((sum * 1.0) / time);
    }
}

2.重排数列

package nowcoder.netease0909;

import java.util.Scanner;

public class Q2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int t = sc.nextInt();
            String[] strArr = new String[t];
            int index = 0;
            while (index < t) {
                int n = sc.nextInt();
                int[] arr = new int[n];
                for (int i = 0; i < n; i++) {
                    arr[i] = sc.nextInt();
                }
                strArr[index] = canDo(arr);
                index++;
//                System.out.println(canDo(arr));
            }
            for (String s :
                    strArr) {
                System.out.println(s);
            }
        }
    }

    private static String canDo(int[] arr) {
        int count4 = 0, count2 = 0, countOther = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 4 == 0) {
                count4++;
                continue;
            } else if (arr[i] % 2 == 0) {
                count2++;
                continue;
            } else
                countOther++;
        }

        if (countOther + 1 <= count4 || count2 == arr.length || count4 == countOther)
            return "Yes";
        else
            return "No";

    }
}

求魔幻王国的代码, 题目都没读懂,真难受。目测已挂。

#网易##Java工程师#
全部评论
直接print 20%??
点赞 回复 分享
发布于 2017-09-09 17:00
王国是那个走L步走几个城市的吗?我用了图,然后深搜,只有0.5。
点赞 回复 分享
发布于 2017-09-09 17:01
oh...***,,我判断的是==2,因该是% 2 == 0,***啊
点赞 回复 分享
发布于 2017-09-09 17:02
魔法王国DFS只有50%
点赞 回复 分享
发布于 2017-09-09 17:06
其实题目都很简单,魔法王国只要找出最长的路径,如果还有多的值k,k/2就好了。
点赞 回复 分享
发布于 2017-09-09 17:12
魔幻国王代码: A(t) = n ; A(t) = A(t-1)*2+1 或者 A(t) = A(t-1) *2 +2, 倒推法,每次计算A(t)能不能被2整除,能,那么上一次肯定用的机器2,不能,上次用的机器1。t=t-1, 依次类推。(感觉跟走台阶是一个类型问题,一共有n个台阶,每次可以走一步或者两步,共有多少走法) #include <iostream> #include <vector> #include <string> #include <iterator> using namespace std; int main(){     vector<int> A;     int i;     cin >> i;          int x = i;     int t = x % 2;          while(x>0){         if(t==0){             A.push_back(2);             x = (x-2)/2;             t = x % 2;         }         else{             A.push_back(1);             x = (x -1) /2;             t = x % 2;         }     }     for(int i= A.size()-1; i>=0;--i){         cout << A[i];     }     return 0;      }
点赞 回复 分享
发布于 2017-09-09 17:18

相关推荐

2024-11-09 11:01
济南大学 Java
Java抽象带篮子:外卖项目真得美化一下,可以看看我的详细的外卖话术帖子
点赞 评论 收藏
分享
给🐭🐭个面试机会吧:我boss直聘天天有家教跟我打招呼😓
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务