小米2048和数组移动有做出来的嘛

小米2048和数组移动有做出来的嘛#小米##笔试题目#
全部评论
2048C++ 做的,先处理n*n的 过75% 然后解析输入处理n*m 的,一直解析错误,,,,,,交卷了发现问题了,,,,,我........i和j这问题....唉 for(int j=0;i<one_in.size();++j){
点赞 回复 分享
发布于 2019-09-11 20:42
我完整的写过2048的游戏 外加手势可以滑动前端 😀
点赞 回复 分享
发布于 2019-09-11 23:14
求个第一题的代码。。。
点赞 回复 分享
发布于 2019-09-11 23:05
C++做处理字符串的题真难受,那个2048居然不是直接读整数。。。 string solution(vector < string > input) { vector<vector<int>> v; int n = input.size(); v.resize(n); for (int i = 0; i < n; ++i) { string str = input[i]; while (!str.empty()) { size_t p = str.find(" "); if (p == string::npos) { v[i].push_back(stoi(str)); break; } string temp = str.substr(0, p); v[i].push_back(stoi(temp)); str.erase(0, p + 1); } } int m = v[0].size(); for (int i = 0; i < n; ++i) { int cur = 0; int k = 0; for (int j = 0; j < m; ++j) { if (v[i][j] != 0) { if (v[i][j] == cur) { v[i][k] = 2 * cur; cur = 0; k += 1; } else { if (cur != 0) { v[i][k] = cur; cur = v[i][j]; k += 1; } else { cur = v[i][j]; } } } } if (cur != 0) { v[i][k] = cur; cur = 0; k += 1; } for (; k < m; ++k) v[i][k] = 0; } string s = ""; for (int i = 0; i < n; ++i) { s += to_string(v[i][0]); for (int j = 1; j < m; ++j) { s += " "; s += to_string(v[i][j]); } s += "\r\n"; } return s; }
点赞 回复 分享
发布于 2019-09-11 21:40
25 50 难受。。。菜到发慌
点赞 回复 分享
发布于 2019-09-11 20:44
数组移动其是就是求数组的逆序的个数,逆序个数等于移动次数,就这样AC了
点赞 回复 分享
发布于 2019-09-11 20:41
function solution(input) {     for(let m=0;m<input.length;m++){         input[m]=input[m].split(" ");         input[m]=input[m].map((item)=>{return item=item-0})         console.log(input[m]);     } for(let i=0;i<input.length;i++){         let arr=input[i];         for(let j=1;j<arr.length;j++){             while(arr[0]==0){                 arr.shift();                 arr.push(0)             }             if(arr[j-1]==0){                 arr.splice(j-1,1);                 arr.push(0)             }         }         for(let k=1;k<arr.length;k++){             if(arr[k-1]==arr[k]){                 arr.splice(k,1);                 arr[k-1]=2*arr[k-1]                 arr.push(0)             }         }     }     return input } JS2048思路
点赞 回复 分享
发布于 2019-09-11 20:30
2048的java代码 static String solution(String[] input) {         String ans = "";         int n = input.length;         for(int i = 0;i < n;i++){             String[] s = input[i].split(" ");             String[] res = new String[s.length];             int len = 0;             for(int j = 0;j < s.length;j++){                 if(s[j].equals("0")){                     continue;                 }else if(j < s.length - 1){                     if(!s[j].equals(s[j+1])){                         res[len] = s[j];                         len++;                     }else {                         int tmp = Integer.parseInt(s[j]) * 2;                         res[len] = "" + tmp;                         len++;                         j++;                     }                 }else {                     res[len] = s[j];                     len++;                 }             }             for(int k = len;k < res.length;k++){                 res[k] = "0";             }             for(int p = 0;p < res.length;p++){                 ans = ans + res[p];                 if(p < res.length-1) ans = ans + " ";                 else ans = ans + "\n";             }         }         return ans;     }
点赞 回复 分享
发布于 2019-09-11 20:29
def  solution(input):     list_input = [i.strip().split(" ") for i in input]     for row in range(len(list_input)):         ori_row = [int(i) for i in list_input[row] if int(i)]         new_row = []         i = 0         while i < len(ori_row):             if i < len(ori_row)-1 and ori_row[i] == ori_row[i+1]:                 new_row.append(ori_row[i] * 2)                 i += 2             else:                 new_row.append(ori_row[i])                 i += 1         for i in range(len(list_input[row])):             if i < len(new_row):                 list_input[row][i] = new_row[i]             else:                 list_input[row][i] = 0     string = ""     for row in list_input:         for num in row:             string += str(num) + " "         string += "\n"     return string 2048的,数组那个没a
点赞 回复 分享
发布于 2019-09-11 20:26
2048 1,数组0.67
点赞 回复 分享
发布于 2019-09-11 20:26
一直75,不知道有什么case过不去,靠
点赞 回复 分享
发布于 2019-09-11 20:24
2048 100%,数组 67%
点赞 回复 分享
发布于 2019-09-11 20:23
2048a了,数组直接print 2吃烂分
点赞 回复 分享
发布于 2019-09-11 20:22
第一题咋做呀
点赞 回复 分享
发布于 2019-09-11 20:18
2048a了,数组那个搞了半天67%,也没有思路了,直接交卷了
点赞 回复 分享
发布于 2019-09-11 20:17
看不懂题目,没玩过
点赞 回复 分享
发布于 2019-09-11 20:05
2048a了,就每行用另外一个数组存,连着两个一样的相加i+=2,不一样就i++
点赞 回复 分享
发布于 2019-09-11 20:01
我也是2048和数组移动
点赞 回复 分享
发布于 2019-09-11 19:59
没有
点赞 回复 分享
发布于 2019-09-11 19:58

相关推荐

评论
点赞
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务