头条编程题用户喜好值有100%AC的吗?

我付一个JS的暴力代码吧,只能过50%:
var n = Number(readline());
var arr = readline().split(" "));
var q = Number(readline());
var line;
while(line = readline()){
	line = line.split(" ").map(function(elem, index) {
		return Number(elem);
	});
	var l = line[0];
	var r = line[1];
	var k = line[2];
	var num = 0;
	for (var i = l-1; i < r; i++){
		if(arr[i] == k){
			num++;
		}
	}
	print(num);
}
请问有100%的同学吗?能讲些写思路吗?谢谢咯
全部评论
//先排序,然后两次二分搜索找到喜好值==k的区间,统计即可 import java.util.*; class ac { int value=0; int num=0; public ac(int num,int value) { this.value=value; this.num=num; } } public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int n= sc.nextInt(); ac[] a= new ac[n]; for(int i=0;i<n;i++){ int k=sc.nextInt(); a[i]=new ac(i+1, k);} Arrays.sort(a,new Comparator<ac>() { @Override public int compare(ac o1, ac o2) { // TODO Auto-generated method stub return Integer.compare(o1.value, o2.value); } }); int q=sc.nextInt(); for(int i=0;i<q;i++){ int l=sc.nextInt(); int r=sc.nextInt(); int k=sc.nextInt(); int left=0; int right=a.length-1; while(left<=right){ int mid=(right-left)/2+left; if(a[mid].value<=k)left=mid+1; else right=mid-1; } int rindex=right;left=0; while(left<=right){ int mid=(right-left)/2+left; if(a[mid].value>=k)right=mid-1; else left=mid+1; } right=rindex; int res=0; while(left<=right){ if(a[left].num>=l && a[left].num<=r)res++;left++; } System.out.println(res); } } } }//最后沉痛悼念我0%的第一题,做懵逼了,以后想不到就暴力先试试
点赞 回复 分享
发布于 2017-09-10 21:50
这是用户喜好,只要将查询排序,然后依次扫描就好100%: http://paste.ubuntu.com/25506027/ 这是那个有多少重复珠子的题: 纯暴力扫描就好了啊!!!100% 有一串(首尾相连)的珠子(共N个),现在总共有C种颜色,第i个珠子上有num[i]种颜色(并提供每个颜色),如果连续相连的M个珠子上出现了相同的颜色x,那么认为颜色x是不合法的。问这串珠子上有多少种不合法的颜色。 代码地址:http://paste.ubuntu.com/25505991/ 蒟蒻663
点赞 回复 分享
发布于 2017-09-10 22:29
//喜爱度是整数,不好定义,直接用map,key是喜爱度,value是用户编号 //map建好直接查询计数 #include <iostream> #include <vector> #include <algorithm> #include <map> #include <math.h> using namespace std; int main() {     int n;     while (cin>>n){         map<int,vector<int>> vec;         for(int i=1;i<=n;i++)         {             int temp;             cin>>temp;             vec[temp].push_back(i);         }         int q;         cin>>q;         vector<int> res(q,0);         for(int i=0;i<q;i++){             int l,r,k;             int cur=0;             cin>>l>>r>>k;             for(auto j=vec[k].begin();j!=vec[k].end();j++){                 if((*j)<=r && (*j)>=l) cur++;             }             res[i]=cur;         }         for(int i=0;i<res.size();i++){             cout<<res[i]<<endl;         }     }     return 0; }
点赞 回复 分享
发布于 2017-09-10 22:24
用的cin。。过了95%啊。。 好长时间不用c++,忘了scanf更快了。
点赞 回复 分享
发布于 2017-09-10 22:15
我莫队冲过去了。 复杂的O(q*sqrt(n)*log(n))
点赞 回复 分享
发布于 2017-09-10 21:54
同50%
点赞 回复 分享
发布于 2017-09-10 21:43
java用BufferedReader应该会比Scanner快
点赞 回复 分享
发布于 2017-09-10 21:43
( ̄▽ ̄)/都是大佬
点赞 回复 分享
发布于 2017-09-10 21:39
简单的看了下,发现三个题都有人暴力过了= = 我这边愚蠢的先写了分析题有点可惜
点赞 回复 分享
发布于 2017-09-10 21:28
真的。。用js做题是自讨苦吃。
点赞 回复 分享
发布于 2017-09-10 21:19
c语言暴力ac,java暴力ac 50%
点赞 回复 分享
发布于 2017-09-10 21:16
用个300个桶好像可以ac(大概)
点赞 回复 分享
发布于 2017-09-10 21:16
#include<stdio.h> int main() { int n = 0; int q = 0; int i = 1, j = 0, k = 0; int a, b, sum; int data[300010]; scanf("%d", &n); for (i = 1; i <= n; i++) { scanf("%d", data + i); } scanf("%d", &q); for (i = 0; i < q; i++) { sum = 0; scanf("%d %d %d", &a, &b, &k); for (j = a; j <= b; j++) { sum += (data[j] == k); } printf("%d\n", sum); } return 0; }
点赞 回复 分享
发布于 2017-09-10 21:15

相关推荐

10-19 10:28
已编辑
西南石油大学 后端工程师
团孝子已上线feeling:面了很多家公司,能感受到目前只有小公司+外包喜欢问八股。大厂虽然也问八股,但是是从实习、项目中进行提问,并且大厂会问很深,面试官也会对你的回答进行思考➕追问,所以准备大厂面试前一定要备好相关资料。对于算法,我做的是codetop前100+力扣hot100+力扣高频150,面试中实感hot100就足够,基本上只要是hot100就秒答。对于项目和八股,我做的也是烂大街的星球项目,八股则是看小林和问ai,自己也写了很多技术博客和画了很多思维导图,并且自己也尝试用嘴巴说出来,不只停留于纸面。运气也很重要,必须要让面试官/HR看到简历才行,所以建议投递时间是下午两点。tl:第一岗位9.9&nbsp;投递9.10&nbsp;一面(一面评价:最近见过最强的大三,结束五分钟后约二面,都晚上九点了不下班吗)9.11&nbsp;二面(三道算法a出两道,反问评价:经验不够等横向,我实习生要啥经验)9.21挂(实习时间过短+其他原因,想要一年实习的,为什么不招个正职)第二岗位10.10投递10.11约面(主管打电话,说看到我之前投递记录了想要我挂qa职进去干后端,同意)10.14&nbsp;一面(无八股,主动说确实很强,意愿很强)10.16&nbsp;oc其余,友邦,东软,东华,惠择,用友oc已拒京东测开一面挂(投后端被测开捞)腾讯测试已拒(投后端被测开捞)ps:表扬惠择的主管面,没怎么问技术(可能是一面面试官沟通过了),全程一起讲大道理,解答了心中很多疑惑,也告诉我以面试官角度来看怎么选候选人,如果可以下次一定选惠择
HeaoDng:美团好像可以触发一面通
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

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