首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
水一样哦哦哦
2017-09-02 18:06
Conservatorio LUCIO Campiani di MANTOVA C++
关注
已关注
取消关注
拼多多第四题谁有思路的?
如题,lics
提示
全部评论
推荐
最新
楼层
陆小霞
桂林电子科技大学 C++
#include <stdio.h> #include <stdlib.h> #include <math.h> void match(int *a,int*b,int m,int n,int k); void inc(int *b,int L,int R,int m); int num = 0; int main() { int m,n,k,L,R; printf("m,n="); scanf("%d %d",&m,&n); printf("k = "); scanf("%d",&k); printf("L,R="); scanf("%d %d",&L,&R); int *a = (int*)malloc(n*sizeof(int)); int *b = (int*)malloc(m*sizeof(int)); int i=0; for(i = 0; i<m; i++) { b[i] = L; } for(i = 0; i<n; i++) { scanf("%d",&a[i]); } for(i = 0; i<pow(R-L+1,m); i++) { int j; /*for(j= 0;j<n;j++){ printf("a = %d ",a[j]); } printf("\n"); */ match(a,b,m,n,k); inc(b,L,R,m); } printf("%d\n",num); } void match(int *a,int*b,int m,int n,int k) { int i,j=0,temp,count=0; if(n<m) { for(i =0; i<n; i++) { for(; j<m; j++) { //printf("%d,%d\n",a[i],b[j]); if(a[i] == b[j]) { count++; j++; temp = j; break; } } if(count == k) break; if(j == n && i < m-1) j = temp; else if(j == n) break; } } else { for(i =0; i<m; i++) { for(; j<n; j++) { //printf("%d,%d\n",a[i],b[j]); if(a[j] == b[i]) { count++; j++; temp = j; break; } } if(count == k) break; if(j == n && i < m-1) j = temp; else if(j == n) break; } } if(count == k) { for(i=0; i<m; i++) { printf("%d ",b[i]); } printf("\n"); num += 1; } } void inc(int *b,int L,int R,int m) { static int i = -1; if(i == -1) { i = m - 1; } if(b[i] == R) { b[i] = L; i -= 1; inc(b,L,R,m); i = m - 1; } else b[i] += 1; }
点赞
回复
分享
发布于 2017-09-03 14:19
后劲好大
某乡下技校 Java
老哥不留百度??
点赞
回复
分享
发布于 2017-09-02 22:50
Time_
杭州电子科技大学 Java
//采用暴力的方法做的,可惜时间不够了,给的例子通过了,不知道还有没有什么问题。仅供参考 #define _CRT_SECURE_NO_WARNINGS // #define STDIN_OUT #include<cstdio> #include<iostream> #include<vector> #include<algorithm> #include<queue> #include<stack> #include<string> #include<string.h> #include<map> #include<cmath> #include<deque> #include<unordered_map> using namespace std; class Solution { public: int lcs(vector<int> str1,vector<int> str2) { int len1 = str1.size(); int len2 = str2.size(); vector<vector<int>> a(len1+1,vector<int>(len2+1,0)); int n_max = 0; for(int i = 0; i < len1; i++) a[i][0] = 0; for(int j = 0; j < len2; j++) a[0][j] = 0; for(int i = 1; i <= len1; i++){ for(int j = 1; j <= len2; j++){ if(str1[i-1] == str2[j-1]) a[i][j] = a[i-1][j-1] + 1; else{ a[i][j] = max(a[i-1][j],a[i][j-1]); } n_max = max(n_max,a[i][j]); } } return n_max; } void dfs(int n, int k, int start, int cur,vector<int> path, vector<vector<int>> &res){ if(cur == k){ res.push_back(path); return; } if(cur < k) for(int i = start; i <= n; i++){ path.push_back(i); dfs(n,k,start,cur+1,path,res); path.pop_back(); } } vector<vector<int>> combine(int start,int end, int k) {//所有的排列组合 vector<vector<int>> res; vector<int> path; dfs(end,k,start,0,path,res); return res; } }; int main() { #ifdef STDIN_OUT freopen("D:\\input.txt", "r", stdin); freopen("D:\\output.txt", "w", stdout); #endif int m,n,L,R,k; vector<int> str1; Solution s; cin>>n>>m; cin>>k; cin>>L>>R; for(int i = 0; i < n;i++) { int val; cin>>val; str1.push_back(val); } vector<vector<int>> res = s.combine(L,R,m); int count = 0; for(auto re : res){ int LCIS = s.lcs(str1,re); if(LCIS >= k) count = (count + 1) % 10007; } cout<<count<<endl; #ifdef STDIN_OUT fclose(stdin); fclose(stdout); #endif return 0; }
点赞
回复
分享
发布于 2017-09-02 19:54
Thare
淘天集团_技术专家
考完想了下 对于序列1 求出所有长度为k的增长序列 假设为z 然后结果就是z*(r-l+1)^(m-k)
点赞
回复
分享
发布于 2017-09-02 19:00
牛客1171869号
哈尔滨工业大学深圳研究生院 算法工程师
题目啥
点赞
回复
分享
发布于 2017-09-02 18:24
CheckCheck
哈尔滨理工大学 C++
不是lcis?
点赞
回复
分享
发布于 2017-09-02 18:14
暂无评论,快来抢首评~
相关推荐
05-02 17:06
长沙工业学院 测试开发
带你理解求最大公因数的算法
前言:在数学学习与计算机编程中,我们经常需要计算两个数字的最大公约数。它既能简化分数计算,也是密码算法、数据运算里最 基础的常用在数学学习与计算机编程中,我们经常需要计算两个数字的最大公约数。它既能简化分数计算,也是密码算法、数据运算里最基础的常用工具。 从古至今,人们总结出两种最经典、流传最广的求解方法:更相减损术与辗转相除法。两种算法底层逻辑相通,都依靠数字公因数不变的数学规律缩小数值,但运算方式、速度效率截然不同。 本文用最简单直白的语言,不带复杂公式,一步步拆解两种算法的原理、过程与优劣对比,带你彻底看懂古人智慧与现代最优解法的区别。<1>更相减损术 #include &l...
点赞
评论
收藏
分享
04-30 11:08
西安电子科技大学 Java
小米面试,我挂了……
上周五,晚上六点,参加了小米一面,整体时长1.5个小时,算是比较长的吧面试官看起来比较年轻,刚开始自己的心态也挺轻松,随着面试的进展,心情变的越加的不对劲,怎么问的每一道题都只知道一点,这是知道了自己的打法,专门来拆台来了 (让我自己认识到自己真不专业,基础太差)问题的答案,我都用一个链接的形式来呈现,相对简单的会做出解释px em rem vw vh 分别解释一下这几个单位www.jianshu.com/p/82f02af17…padding-top, 10%, 10rem,10vh, 10em 取值逻辑是什么这个里面有个坑 就是10% ,取的是父容器的宽度的10%em 也有个坑,不一定取的...
查看23道真题和解析
点赞
评论
收藏
分享
04-10 10:22
腾讯_golang工程师(实习员工)
双非暑期终于结束了
感觉自己还是挺狗运的,比不上牛客这些双非大佬随便秒终于戴上红围脖了,xdm 加油
lztqdywcnm...:
点赞
评论
收藏
分享
04-30 10:14
北京邮电大学 Java
腾讯 IEG 后台开发 一面
自我介绍实习A 系统 多业务线的统一纳管配置是什么意思延时双删解释一下;有没有可以根治数据库与缓存不一致的方法;为什么不采用主从读写分离用户如何触发点位上的投放召回有没有通过算法模型推测用户喜好;如果让你设计,比如给用户推荐美食,如何做(数据越多,构建出来的模型越清晰);一直拉其他业务的数据合适吗,有没有更好的方法B 平台 为什么要做综合运用三个设计模式,具体是如何做的为什么用轮询,而不是通过线程做异步通知;现在前端会做轮询,如果有人伪造大量恶意请求,怎么办C 系统 如何根据用户的实时数据优化算法模型详细说一下双链路诊断工具;为什么不在落日志之前针对失败做告警主从资源利用不均的问题是如何发现的...
查看27道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
27实习宇树科技AI agent开发二面
2.0W
2
...
学院本拿下字节暑期offer!!!
6391
3
...
宇树科技实习AI agent开发一面分享
6295
4
...
快手后端一面面经
4867
5
...
agent开发是测试的最好转型期
4501
6
...
一位小镇做题家的自白
4309
7
...
后端开发简历求拷打
4228
8
...
至今,暑假实习0offer
3232
9
...
面试真题】美团Agent 方向面经整理
3036
10
...
27届UE游戏客户端暑期结束力,小小地做个总结吧
2426
创作者周榜
更多
正在热议
更多
#
这个offer值得去吗?
#
23152次浏览
187人参与
#
上班苦还是上学苦呢?
#
345737次浏览
2073人参与
#
联宝杯大学生创新大赛,你的技术值得产业级答案
#
48181次浏览
521人参与
#
如果春招能重来,我会___
#
23433次浏览
246人参与
#
实习怎么做才有更好的产出
#
50206次浏览
458人参与
#
你会因为行情,降低找工作标准吗?
#
36256次浏览
296人参与
#
在爱玛,骑向未来
#
14754次浏览
333人参与
#
字节开奖
#
153229次浏览
711人参与
#
我的秋招“寄”录
#
476665次浏览
3064人参与
#
面试线索爆料
#
131147次浏览
706人参与
#
提名点击就挂的公司
#
144385次浏览
492人参与
#
刚入职就____,这样正常吗?
#
143718次浏览
691人参与
#
AI coding的好用工具分享
#
88678次浏览
567人参与
#
字节求职进展汇总
#
1851202次浏览
15434人参与
#
找工作以来,你最看不惯__
#
79565次浏览
594人参与
#
大学四年该怎么过,才不算浪费时间?
#
23988次浏览
107人参与
#
硬件人秋招的第一个offer
#
129172次浏览
1473人参与
#
AI“智障”时刻
#
40515次浏览
195人参与
#
业务面应该做哪些准备
#
128227次浏览
1345人参与
#
双非本科求职如何逆袭
#
1651548次浏览
13097人参与
#
双非应该如何逆袭?
#
588868次浏览
6409人参与
#
制造业的秋招小结
#
157492次浏览
2136人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务