美团笔试 我。。。。

大家来说一下吧,第二道题怎么做到100的?#美团笔试题##美团#
全部评论
    public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         int n = scanner.nextInt();         int[] arr = new int[n];         for (int i = 0; i < n; i++) {             arr[i] = scanner.nextInt();         }         int tmpArr[] = new int[n];         tmpArr[0] = 1;         for (int i = 1; i < n; i++) {             if (arr[i] > arr[i - 1]) {                 tmpArr[i] = tmpArr[i - 1] + 1;             }else{                 tmpArr[i] = 1;             }         }         int ans = Integer.MIN_VALUE;         for (int i = 1; i < n - 1; i++) {            if(arr[i + 1] > arr[i -1]){                int start = tmpArr[i -1] + 1;                for(int j = i + 1; j < n - 1 && tmpArr[j + 1] > tmpArr[j] ; j++){                    start++;                }                ans = Math.max(ans, start);            }         }         System.out.println(ans);     } AC了
2 回复 分享
发布于 2020-03-19 21:18
我的做法:从左到右遍历得到数组中当前每个数的上升个数。比如:2 1 3 2 5 就是1 1 2 1 2, 然后从右到左遍历,2 1 3 2 5得到的就是1 2 1 2 1。 最后max(res, left[i]+right[i+2])得到答案。 伪代码: for 1 -> n-1     if nums[i] > nums[i-1]         left[i] = left[i-1]+1 for n-2 -> 0     if nums[i] < nums[i+1]         right[i] = right[i+1]+1 for 0 -> n-3     res = max(res, left[i] + right[i+2])
1 回复 分享
发布于 2020-03-19 23:12
[图片]
1 回复 分享
发布于 2020-03-19 22:49
能麻烦发一些这道题的题目吗?
点赞 回复 分享
发布于 2020-03-22 17:08
我发现每次情况删一个数dp一次的话最后只能AC百分之四十多,其他情况超时。然后改了一下,只整体dp一次,然后找到最大数+1能AC百分之七十六😁
点赞 回复 分享
发布于 2020-03-20 15:15
遇到一个逆序的可以无视(因为题目可以删除一个),指针顺势往下移比较大小,不逆序就记录长度更新到结果,逆序就退出这个逆序情况有i和i+2比还有i-1和i+1的两种情况,只做一种只过64,花了好长时间想到另一种把这题a了,我个人是这么个情况
点赞 回复 分享
发布于 2020-03-19 21:21
Dp
点赞 回复 分享
发布于 2020-03-19 21:15
我的做法是这样的,如果检测到一个数,他比两边都大,或者比两边都小(极值,破坏单调的数),就以他为中心向两边搜索两边单调递增递减的区间,加起来。。。
点赞 回复 分享
发布于 2020-03-19 21:10

相关推荐

(黑话警告⚠️:hc=岗位数量,&nbsp;mt=导师,&nbsp;ld=直属领导,&nbsp;cr=代码审查)25年1月,我加入了字节某前端团队,并期望能在这里待到秋招并尝试转正。然而,就在上周,ld&nbsp;找我1v1,告诉我,我的能力和团队预期不太匹配,并和我劝退。晴天霹雳吗?肯定是有的。那一刻,脑子里嗡嗡作响,各种情绪翻涌。但冷静下来想想,这几个月,自己在能掌控的范围内,确实有不少地方做得不尽如人意。所以,我想把这段不算成功的经历复盘一下,希望能给同样在努力转正的你提个醒,避开我踩过的坑。一、ld&nbsp;的要求要注意刚进组时,ld就和我聊过转正的事。我当时发问:“咱们这儿有hc&nbsp;吗?”&nbsp;ld没直接回答,只是说:“看能力,能力到了...
牛客上的彭于晏:过来人告诉你,入职后要做的第一件事儿不是说主动找活儿做,你要先学会融入团队,摸清ld的性格,投其所好。然后才是展示你的能力,能力上可以说技术或者业务,以业务能力为主,技术能力为辅。优先保证自己对业务需求的开发保证质量效率,然后再谈技术的问题,不要你觉得啥啥啥不行就想着整体优化了(发现校招生最喜欢干这事儿),我工作快5年了发现搞这种的最后都没啥好的结果,产出没有还引入新的bug,校招或者实习的水平看到的问题别人看不到嘛?为什么别人不去搞?浪费时间还没收益的事儿不要去做,技术上的能力体现在对于一个新需求,在不符合现在业务发展的架构设计上,你能拿出好的技术方案同时能考虑到后续业务发展逐渐将技术架构引入合理的架构,这是一个漫长的过程而不是一次性的
点赞 评论 收藏
分享
04-01 17:41
门头沟学院 Java
点赞 评论 收藏
分享
评论
3
5
分享

创作者周榜

更多
牛客网
牛客企业服务