A题(暴力)
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 返回牛牛能喝的最多的酒 * @param m int整型 酒单价 * @param n int整型 牛牛的现金 * @return int整型 */ int countWine(int m, int n) { // write code here int i=1000; int a=n/m; int b=n/m; int sum=n/m; while(i) { i--; int t=0; t+=a/2; t+=b/4; sum+=t; a=a-a/2*2; b=b-b/4*4; a+=t; b+=t; } return sum; } };
B题(二分答案)
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param x string字符串 * @return int整型 */ int check(int x,string s) { int a1=0; int a2=0; int a3=0; for(int i=0;i<s.length();i++) { if(s[i]=='c'&&a3<x&&a1==x&&a2==x) a3++; if(s[i]=='b'&&a2<x&&a1==x) a2++; if(s[i]=='a'&&a1<x) a1++; } if(a1==x&&a2==x&&a3==x) return 1; return 0; } int Maximumlength(string x) { // write code here int l=0; int r=x.length(); while(r-l>1) { int mid=l+r>>1; if(check(mid,x)) l=mid; else { r=mid; } } return l*3; } };
C题(博弈论,打表找规律)
class Solution { public: /** * * @param n int整型 * @param p int整型 * @param q int整型 * @return int整型 */ int Gameresults(int n, int p, int q) { // write code here if (n <= p) return 1; if (p >= q) { if (p > q) return 1; if (p == q) { if (n % (q+1) == 0) return -1; else return 1; } } return -1; } };