「笔试题」最近做了一个招银网络科技Java岗位在线笔试题,给有需要的朋友了解学习一下!
编程题一
大概意思是,给一段字符串,然后统计该字符串中相同字符个数,并以字符串+该字符串个数组合排列成新的字符串。如输入" sssdhibdhidhi " ,需要返回结果 "s3d3h3i3b1"。话不多说,直接上代码:
import java.util.*;public class Main {public static void main(String[] args) {LinkedHashMap<Character,Integer> hashMap = new LinkedHashMap<>();String str = "sssdhibdhidhi";for (char c: str.toCharArray()) {if (hashMap.containsKey(c)) {hashMap.put(c,hashMap.get(c) + 1);} else {hashMap.put(c,1);}}for (Character character : hashMap.keySet()) {System.out.printf("%s%s",character,hashMap.get(character));}}
}
编程题二
大概意思是 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
candidates 中的每个数字在每个组合中只能使用一次。
说明:
所有数字(包括目标数)都是正整数。
解集不能包含重复的组合。
示例 1:
输入: candidates = [10,1,2,7,6,1,5], target = 8,
所求解集为:
[
[1, 7],
[1, 2, 5],
[2, 6],
[1, 1, 6]
]
实现代码如下:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class Main {public static void main(String[] args) {int[] candidates = {2,6,1,7,4,9};System.out.println(combinationSum(candidates,20));}static List<List<Integer>> lists = new ArrayList<>();public static List<List<Integer>> combinationSum(int[] candidates, int target) {Arrays.sort(candidates);//对数组进行排序if (candidates == null || candidates.length == 0 || target < 0) {return lists;}List<Integer> list = new ArrayList<>();dfs(list, candidates, target, 0);return lists;}private static void dfs(List<Integer> list, int[] candidates, int target, int start) {//递归的终止条件if (target < 0) {return;}if (target == 0) {lists.add(new ArrayList<>(list));} else {for (int i = start; i < candidates.length; i++) {//因为这个数和上个数相同,所以从这个数开始的所有情况,在上个数里面都考虑过了,需要跳过if (i != start && candidates[i] == candidates[i - 1]) {continue;}list.add(candidates[i]);dfs(list, candidates, target - candidates[i], i + 1);list.remove(list.size() - 1);}}}
}
思路说明:
以{1, 1, 2, 5, 6, 7},target = 8 为例模拟一下解题流程
首先排个序,是为了以后能方便的剪枝以及跳过重复的解
遍历数组,进行累加,若小于 8 就继续遍历,得到 [1, 1, 2]
下一个 5 添加进来后就大于 8 了,所以直接 break 这次遍历,并从列表中退出 2,然后从2的下一个元素继续遍历,得到 [1, 1, 5]
下一个 6 添加进来后大于 8,所以去掉 5,从将5 后一个元素继续得到 [1, 1, 6],判断等于 8,所以保存该解,因为已经排好了序,所以后面的元素不用再看了,就 break这次循环
这时列表中只有 [1, 1], 将第二个 1 退出,从它的后一个元素开始遍历,得到 [1, 2, 5],保存该解并break这次循环
退出2,从它的下一个元素开始,得到[1, 5]
下一个 6 添加进来后大于 8,所以去掉5,添加6,得到[1, 6]
下一个 7 添加进来后大于 8,所以去掉6,添加7,得到[1, 7],保存该解并break这次循环
退出1,从它下一个元素开始,因为下一个元素还是1,所以跳过它,再下一个元素是2,于是从2开始得到[2, 5]
下一个 6 添加进来后大于 8,所以去掉5,添加6,得到[2, 6],保存该解并break这次循环
退出2,从它下一个元素 5 开始,得到 [5]
下一个 6 添加进来后大于 8,所以去掉5,添加6,得到 [6]
下一个 7 添加进来后大于 8,所以去掉6,添加7,得到 [7]
更多笔试题持续更新中....
「笔试题」最近做了一个招银网络科技Java岗位在线笔试题,给有需要的朋友了解学习一下!相关推荐
- 招银网络科技java春招二面_招银网络科技 2019春招笔试题复盘
因本人刚开始写博客,学识经验有限,如有不正之处望读者指正,不胜感激:也望借此平台留下学习笔记以温故而知新.这篇博客是复盘回忆招银网络科技2019春招的笔试试题类型,相关岗位:算法工程师. 简要介绍:时 ...
- 一个妹子的招银网络科技Java后台开发面经
基本情况 妹子985非科班硕士,秋招Java后台开发,先后投递了招银网络科技,招行***中心,招行总行的岗位和招行杭州分行. 招行有很多机构,这些机构之间可同时投递多个,面试可并行进行,也可以同时拿多 ...
- 招银网络科技笔试题:数字分解
之前都在leetcode刷题,有些文章直接保存到上面去了,这是今天做招银的测试题中的一个,先说一下题目的大概意思. 给定一个整数,要求输出关于这个整数的各种数字相加的组合: 1:0种 2:0种 3:3 ...
- 招银网络软件测试合肥面试题,【招银网络科技面试|面试题】-看准网
面试官的问题: 问看到简历中的项目,简单介绍一下用到的框架 答这个项目主要是学校实训的项目,给的选题去做的,使用到了SSH的三个框架.其中Spring主要使用了IoC功能,利用Spring的Bean容 ...
- 招银网络科技2018秋招试题
一.单选题 1.在表Dept(Dno,Dname,Tele)中,为了尽量减小存储空间,字段Dname存储长度在6-18之间,以下设置的字段类型哪个最合适(B) A Varchar(10) B Varc ...
- 「实战篇」开源项目docker化运维部署-后端java部署(七)
原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:「实战篇」开源项目docker化运维部署-后端java部署(七) 本节主要说说后端的部署需要注意的点,本身renren-fas ...
- AI算力需求6年增长30万倍,「超异构计算」才能满足下一个10年
今年 3 月,「强化学习教父」Richard Sutton 在<苦涩的教训>一文中指出,「70 年的人工智能研究史告诉我们,利用计算能力的一般方法最终是最有效的方法.要在短期内有所提升,研 ...
- 「华大基因」追风做BaaS平台,基因科技和区块链能碰撞出什么未来?
编者按:4月3日起,针对网信办近期公布的境内区块链信息服务备案项目,Odaily星球日报推出「直击链企」栏目,对首批 197个已备案区块链信息技术全方位解读. 欢迎各方朋友关注支持,与我们一起把握区块 ...
- 穿上这件全球首款「隐形衣」,做这条街最「无脸」的仔;阿里给钱给资源,求解AI安全难题...
金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 真的存在「隐形衣」吗? 在人脸识别无处不在的今天,这个倒是可以有. 只要穿上这么一件T恤,就能骗过人脸识别AI,从而达到「隐身」效果. 这就 ...
最新文章
- 【长篇连载】桌面管理演义 第六回 违规言论别乱发 访问控制把你抓
- “所有一切”和“介于之间”:欧美“新媒体”艺术
- Java Servlet总结
- 定时器和多线程的不同
- 大专计算机应用技术答辩,计算机应用技术专业硕士答辩.ppt
- C#实现局域网UDP广播
- wps怎么投递简历发到boss直聘_BOSS直聘角逐招聘季:装机量、下载增量、增长率三料冠军...
- 得天独厚的生态优势_云南农业得天独厚的三大优势
- python 大小端转换,大小端 python
- EasyTouch的使用
- SpringBoot-iText-Pdf
- MATLAB中的颜色控制
- kaprekar常数(6174猜想)
- 那句子太美,我不敢看
- web进销存源码-Java进销存ERP软件系统源码定制多仓库多门店 + 小程序 Saas多商户
- 最大公约数 (20 分) 第三个测试点
- 商品期货人数(期货品种数量)
- 基于单窗算法的地表温度反演算法
- 突然35岁:捡点我的职业生涯(转)
- 【Flutter】Flutter 如何实现开屏广告