链家后台研发笔试第三题

提交结果91%,有谁能告诉我需要考虑哪个边界吗?
全部评论
我是直接减出来的序号,没算加起来的各个分区边界,ac了 import java.util.*; public class questionThree { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); while(in.hasNext()){ int n=in.nextInt(); int[] arr=new int[n]; for(int i=0;i<n;i++){ arr[i]=in.nextInt(); } int Q=in.nextInt(); int[] q=new int[Q]; for(int i=0;i<Q;i++){ q[i]=in.nextInt(); } for(int i=0;i<Q;i++){ int num=q[i]; for(int j=0;j<n;j++){ if(num-arr[j]<=0){ System.out.println(j+1); break; } else{ num-=arr[j]; } } } }in.close(); } }
点赞 回复 分享
发布于 2017-08-19 21:28
楼主竟然能提交
点赞 回复 分享
发布于 2017-08-19 21:26
#include <iostream> #include <vector> #include <algorithm> using namespace std; struct node { int data; int NO; }; int comp(const void *a, const void *b) { return (*(node*)a).data > (*(node*)b).data ? 1 : -1; } int main() { int n; cin >> n; vector<int> num(n); for(int i = 0; i < n; i++) cin >> num[i]; int q_num; cin >> q_num; vector<int> Q(q_num); for(int i = 0; i < q_num; i++) cin >> Q[i]; node *qq = new node[q_num]; for(int i = 0; i < q_num; i++) { qq[i].data = Q[i]; qq[i].NO = i; } qsort(qq, q_num, sizeof(node), comp); vector<int> result(q_num); int sum = 0; int i = 0; int j = 0; int k = 0; while(i < q_num) { while(j < n) { sum = sum + num[j]; if(sum >= qq[i].data && sum - num[j] < qq[i].data) { result[qq[i].NO] = j+1; for(k = i+1; k < q_num; k++) { if(sum >= qq[k].data && sum - num[j] < qq[k].data) result[qq[k].NO] = j+1; else break; } j++; break; } j++; } i = k; } for(int i = 0; i < q_num; i++) cout << result[i] << endl; delete [] qq; return 0; }
点赞 回复 分享
发布于 2017-08-19 21:24
超时吧,还有可能0个数
点赞 回复 分享
发布于 2017-08-19 21:22
//为什么第一题提交一直说答案错误 这样输出不对吗? import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Scanner; import java.util.Set; import java.util.TreeSet; public class Main { public static void main(String[] args) throws IOException { try { Scanner sc = new Scanner(new File("random.in")); Set<Integer> set = new TreeSet<>(); List list = new ArrayList<>(); int N = sc.nextInt(); for (int i = 0; i < N; i++) { set.add(sc.nextInt()); } // for (int i = 0; i < set.size(); i++) { // list.add(set.) // } // Collections.sort(set); // Arrays.sort(set.toArray()); File file = new File("random.out"); // if (!file.exists()) { // file.createNewFile(); // } FileOutputStream fs = new FileOutputStream(file); StringBuilder sb = new StringBuilder(); sb.append(set.size() + "\n"); Iterator it = set.iterator(); sb.append(it.next()); // System.out.print(it.next()); while (it.hasNext()) { // System.out.print(" "+it.next()); sb.append(" " + it.next()); } fs.write(sb.toString().getBytes()); fs.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
点赞 回复 分享
发布于 2017-08-19 20:53
还是set好
点赞 回复 分享
发布于 2017-08-19 20:51
丧心病狂了。。。提交不上去
点赞 回复 分享
发布于 2017-08-19 20:49
用map做怎么样、
点赞 回复 分享
发布于 2017-08-19 20:46
丧心病狂 不给人提交运行
点赞 回复 分享
发布于 2017-08-19 20:39
楼主厉害啊,居然能提交
点赞 回复 分享
发布于 2017-08-19 20:38
一题都没提交上……
点赞 回复 分享
发布于 2017-08-19 20:38
后台第二题格式错误是什么原因
点赞 回复 分享
发布于 2017-08-19 20:38
楼主能提交?
点赞 回复 分享
发布于 2017-08-19 20:37
楼主能提交?
点赞 回复 分享
发布于 2017-08-19 20:36
楼主能提交。。。
点赞 回复 分享
发布于 2017-08-19 20:35
楼主竟然能提交?
点赞 回复 分享
发布于 2017-08-19 20:34
好像大家题目不一样,先描述一下
点赞 回复 分享
发布于 2017-08-19 20:34

相关推荐

03-21 15:33
惠州学院 市场
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务