度小满金融笔试题--不会溜了

/**
     * 1、题目描述:
     * 在机器学习中有一种流行的池化操作,而在池化操作中,3*3极大值池化应用十分广泛。什么是3*3极大值池化呢?设原矩阵是n*m的,
             则3*3极大值池化就是枚举矩阵中的所有3*3的子矩阵,分别求最大值并顺次拼接而成,处理过后的矩阵是(n-2)*(m-2)。
     * 
     * 例如,原矩阵是[[1,2,3,4],[5,6,7,8],[9,10,11,12]],经过池化之后就变成[[11,12]]。
     * 
     * 为了提高难度,选择的滑动窗口并不是3*3的,而是a*b的,由于输入可能是非常大的,原n*m的矩阵权值由以下公式计算得到,h(i,j)=i*j mod 10。(1<=i<=n,1<=j<=m)
     * 
     * 由于输出矩阵也是一个很麻烦的事情,因此你只需输出经过a*b池化处理后的矩阵的元素之和即可。
     *
     * 输入
     * 输入第一行包含四个正整数,n,m,a,b,分别表示原矩阵的行列数量和滑动窗口的行列数量。(1<=n,m,a,b<=1000)
     *
     * 输出
     * 输出仅包含一个整数,即新矩阵的元素之和。
     *
     *
     * 样例输入
     * 4 5 3 3
     * 样例输出
     * 54
     */                
/**
     *西西所在的国家有N座城市,每座城市都有一道传送门,城市 i 的传送门通往城市 a[i]。当西西位于城市 i 时,每次他可以执行以下三种操作中的一种:
     *
     *花费 A 的费用,从城市 i 前往城市 a[i];
     *
     *如果 a[i] > 1,可以花费 B 的费用,将 a[i] 的值减少 1;
     *
     *如果 a[i] < N,可以花费 C 的费用,将 a[i] 的值增加 1。
     *
     *现在,西西想从城市 1 前往城市 N,那么他至少要花费多少费用?

     *input:
     *  第一行输入四个整数 N、A、B、C(1 < N <= 10000,1 <= A、B、C <= 100000)。
     *
     * 第二行输入 N 个整数 a[1] 到 a[N](1 <= a[i] <= N)。
     *
     *output:
     * 输出一个整数,表示从城市 1 前往城市 N 所花费的最少费用。
     *
     * sample:
     * 7  1  1  1
     * 3  6  4  3  4  5  6

          *  output
          *    4
     */        


#度小满笔试##度小满#
全部评论
第一题暴力加剪枝过了,池化结果为9就直接返回进行下一次池化。第二题没思路
1 回复 分享
发布于 2020-04-20 17:35
//定义两个指针,一个向右,一个向下,当向右到达边界,回到左边并先下移动一次,然后继续向右,直到不能再向下为止。每一次移动都找到最大值。找到最大值跳出继续移动。时间复杂度有点大。。
点赞 回复 分享
发布于 2020-04-21 15:48
第二题是什么意思?求解 西西所在的国家有N座城市,每座城市都有一道传送门,城市 i 的传送门通往城市 a[i]. 怎么就城市的表示变成 a[i] 了,前面城市不是表示成 i 吗?
点赞 回复 分享
发布于 2020-04-20 19:02
我可以在我的题解里面加上你这篇帖子的链接吗
点赞 回复 分享
发布于 2020-04-20 18:32
第一题可以偷鸡
点赞 回复 分享
发布于 2020-04-20 18:30
import java.util.Scanner; public  class Main {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         int n,m,a,b,ans=0;         n = sc.nextInt();         m = sc.nextInt();         a = sc.nextInt();         b = sc.nextInt();         int mid=0;         for (int i = 0; i <n-a+1 ; i++) {             for (int j = 0; j <m-b+1 ; j++) {                 ans+=func(i,j,a,b);             }         }         System.out.println(ans);     }     public static  int func(int i,int j,int a,int b){         int max=0;         for (int k = i; k <a+i ; k++) {             if (max==9)break;             for (int l = j; l <b+j ; l++) {                 max = Math.max(max, (k+1)*(l+1)%10);                 if (max==9)break;             }         }         return max;     } }
点赞 回复 分享
发布于 2020-04-20 18:27
第二题递归怎么不行呀
点赞 回复 分享
发布于 2020-04-20 17:40
第一题暴力,只有45,第二题64,唉……度小满再见了,呜呜呜
点赞 回复 分享
发布于 2020-04-20 17:38
第一题一行代码。print(9 * ((n - a + 1) * (m - b + 1)))。测试用例感觉有问题。
点赞 回复 分享
发布于 2020-04-20 17:38
太难了,而且第一题我不知道他那个矩阵怎么输入,我第一次参见招聘,哎,劝退了
点赞 回复 分享
发布于 2020-04-20 17:37
楼主是题型传递助手
点赞 回复 分享
发布于 2020-04-20 17:36
第一次ac了 第二题没写完。。
点赞 回复 分享
发布于 2020-04-20 17:36
1,0.18
点赞 回复 分享
发布于 2020-04-20 17:36
第一题a了六十几,不知道哪错了,第二题实在写不出,应该用搜索+回溯?但是不剪枝就栈溢出,剪枝就到不了结果
点赞 回复 分享
发布于 2020-04-20 17:32
第三题的输出应该是什么啊,我感觉我算法没问题,输出一直不对…
点赞 回复 分享
发布于 2020-04-20 17:29
第一次笔试碰到一题都不会的,是我太菜
点赞 回复 分享
发布于 2020-04-20 17:18
太难了。。第二天完全想不到思路,第一题勉强ac了
点赞 回复 分享
发布于 2020-04-20 17:17
这么多溜出来的哈哈哈 真的好难QAQ 。
点赞 回复 分享
发布于 2020-04-20 17:15
加1 ,完全不会,度小满再见
点赞 回复 分享
发布于 2020-04-20 17:15
蒙了蒙了
点赞 回复 分享
发布于 2020-04-20 17:11

相关推荐

点赞 评论 收藏
分享
AI牛可乐:哇,听起来你很激动呢!杭州灵枢维度科技听起来很厉害呀~你逃课去白马培训,老冯会同意吗?不过既然你这么感兴趣,肯定是有原因的吧! 对了,想了解更多关于这家公司或者求职相关的问题吗?可以点击我的头像私信我哦,我可以帮你更详细地分析一下!
你都用vibe codi...
点赞 评论 收藏
分享
上周组里招人,我面了六个候选人,回来跟同事吃饭的时候聊起一个让我挺感慨的现象。前三个候选人,算法题写得都不错。第一道二分查找,五分钟之内给出解法,边界条件也处理得干净。第二道动态规划,状态转移方程写对了,空间复杂度也优化了一版。我翻他们的简历,力扣刷题量都在300以上。后三个呢,就有点参差不齐了。有的边界条件没处理好,有的直接说这道题没刷过能不能换个思路讲讲。其中有一个女生,我印象特别深——她拿到题之后没有马上写,而是先问我:“面试官,我能先跟你确认一下我对题目的理解吗?”然后她把自己的思路讲了一遍,虽然最后代码写得不是最优解,但整个沟通过程非常顺畅。这个女生的代码不是最优的,但当我问她“如果这里是线上环境,你会怎么设计’的时候,她给我讲了一套完整的方案——异常怎么处理、日志怎么打、怎么平滑发布。她对这是之前在实习的时候踩过的坑。”我在想LeetCode到底在筛选什么?我自己的经历可能有点代表性。我当年校招的时候,也是刷了三百多道题才敢去面试。那时候大家都刷,你不刷就过不了笔试关。后来工作了,前三年基本没再打开过力扣。真正干活的时候,没人让你写反转链表,也没人让你手撕红黑树。更多的是:这个接口为什么慢了、那个服务为什么OOM了、线上数据对不上了得排查一下。所以后来我当面试官,慢慢调整了自己的评判标准。算法题我还会出,但目的变了。我出算法题,不是想看你能不能背出最优解。而是想看你拿到一个陌生问题的时候,是怎么思考的。你会先理清题意吗?你会主动问边界条件吗?你想不出来的时候会怎么办?你写出来的代码,变量命名乱不乱、结构清不清楚?这些才是工作中真正用得到的能力。LeetCode是一个工具,不是目的。它帮你熟悉数据结构和常见算法思路,这没问题。但如果你刷了三百道题,却说不清楚自己的项目解决了什么问题、遇到了什么困难、你是怎么解决的,那这三百道题可能真的白刷了。所以还要不要刷LeetCode?要刷,但别只刷题。刷题的时候,多问自己几个为什么:为什么用这个数据结构?为什么这个解法比那个好?如果换个条件,解法还成立吗?把刷题当成锻炼思维的方式,而不是背答案的任务。毕竟面试官想看到的,从来不是一台背题机器,而是一个能解决问题的人。
牛客51274894...:意思是光刷力扣还不够卷
AI时代还有必要刷lee...
点赞 评论 收藏
分享
评论
1
16
分享

创作者周榜

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