Java实现 - 华为2016研发工程师编程题
文章目录
- 删数
- 字符集合
- 数独
删数
题目描述
有一个数组 a[N] 顺序存放 0 ~ N-1 ,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以 8 个数 (N=7) 为例 :{ 0,1,2,3,4,5,6,7 },0 -> 1 -> 2 (删除) -> 3 -> 4 -> 5 (删除) -> 6 -> 7 -> 0 (删除),如此循环直到最后一个数被删除。
数据范围:
1 ≤ n ≤ 1000
输入
每组数据为一行一个整数n(小于等于1000),为数组成员数
输出
一行输出最后一个被删掉的数的原始下标位置。
示例一
输入:8
输出:6
示例二
输入:1
输出:0
通过代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int N;while (in.hasNext()) {List<Integer> list = new ArrayList<>();N = in.nextInt();for (int i = 0; i < N; i++) {list.add(i);}int i = 0;while (list.size() > 1) {i = (i + 2) % list.size();list.remove(i);}System.out.println(list.get(0));}}
}
字符集合
题目描述
输入一个字符串,求出该字符串包含的字符集合,按照字母输入的顺序输出。
数据范围:输入的字符串长度满足 1≤n≤100 ,且只包含大小写字母,区分大小写。
本题有多组输入
输入描述
每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。
输出描述
每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。
示例一
输入:abcqweracb
输出:abcqwer
示例二
输入:aaa
输出:a
通过代码
import java.util.LinkedHashSet;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNext()) {String str = in.next();LinkedHashSet<Character> set = new LinkedHashSet<>();for (int i = 0; i < str.length(); i++) {set.add(str.charAt(i));}for (Character c : set) {System.out.print(c);}System.out.println();}}
}
数独
题目描述
数独是一个我们都非常熟悉的经典游戏,运用计算机我们可以很快地解开数独难题,现在有一些简单的数独题目,请编写一个程序求解。
如有多解,输出一个解
输入描述
输入9行,每行为空格隔开的9个数字,为0的地方就是需要填充的。
输出描述
输出九行,每行九个空格隔开的数字,为解出的答案。
解题思路
l两个通过代码的思路是一样的,采用深度优先搜索DFS
可以把数独看成是9x9的二维数组或者是长度为81的一位数组均可。
当到达数组的某一位置时,判断该位置上的数字是否为0(为0表示这个位置是待填写的位置)
- 如果不是0,则需要继续遍历到下一个位置
- 如果是0,则需要找出可以填在该位置上的合法的数
所谓合法的数,也就是指,该位置所处的行,列和9宫格中,都还没有出现过的数
- 通过代码一:是从1到9先填入,然后再检查填入的数是否合法
- 如果合法,则进入下一个位置继续判断
- 如果不合法,则换下一个数填,重新判断是否合法
- 通过代码二:是先把行、列、九宫格中已经出现的数记录下来,再填入当前没有出现过的数
当遍历到最后时,则已经得到了一组可行解,设置isOk为true,则可以直接结束程序了
通过代码一
import java.util.Scanner;public class Main {static boolean isOk;static int[][] matrix = new int[9][9];public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNext()) {for (int i = 0; i < 81; i++) {matrix[i / 9][i % 9] = in.nextInt();}dfs(0);for (int i = 0; i < 81; i++) {System.out.print(matrix[i / 9][i % 9]);System.out.print((i + 1) % 9 == 0 ? "\n" : " ");}}}public static void dfs(int n) {if (n > 80) {isOk = true;return;}int x = n / 9;int y = n % 9;//如果当前数独这个位置有数,则继续下一个位置if (matrix[x][y] != 0) {dfs(n + 1);} else {for (int i = 1; i <= 9; i++) {matrix[x][y] = i;if (check(x, y)) {dfs(n + 1);if (isOk) {return;}}matrix[x][y] = 0;}}}//用来检查在(x,y)位置放数字i是否合适public static boolean check(int x, int y) {for (int i = 0; i < 9; i++) {if (i != y && matrix[x][i] == matrix[x][y]) {return false;}if (i != x && matrix[i][y] == matrix[x][y]) {return false;}}int start_x = (x / 3) * 3;int start_y = (y / 3) * 3;for (int i = start_x; i < start_x + 3; i++) {for (int j = start_y; j < start_y + 3; j++) {if (i != x && j != y && matrix[i][j] == matrix[x][y]) {return false;}}}return true;}}
通过代码二
import java.util.Scanner;public class Main {static boolean isOk;public static void main(String[] args) {Scanner in = new Scanner(System.in);int[][] matrix = new int[9][9];while (in.hasNext()) {for (int i = 0; i < 81; i++) {matrix[i / 9][i % 9] = in.nextInt();}dfs(0, matrix);for (int i = 0; i < 81; i++) {System.out.print(matrix[i / 9][i % 9]);System.out.print((i + 1) % 9 == 0 ? "\n" : " ");}}in.close();}private static void dfs(int n, int[][] matrix) {int x = n / 9;int y = n % 9;if (n > 80) {isOk = true;return;}if (matrix[x][y] != 0) {dfs(n + 1, matrix);} else {boolean[] flag = new boolean[10];//检查这一行for (int i = 0; i < 9; i++) {flag[matrix[x][i]] = true;}//检查这一列for (int i = 0; i < 9; i++) {flag[matrix[i][y]] = true;}//检查这一个方块int start_x = (x / 3) * 3;int start_y = (y / 3) * 3;for (int i = start_x; i < start_x + 3; i++) {for (int j = start_y; j < start_y + 3; j++) {flag[matrix[i][j]] = true;}}for (int i = 1; i < 10; i++) {if (!flag[i]) {matrix[x][y] = i;dfs(n + 1, matrix);if (isOk) {return;}matrix[x][y] = 0;}}}}
}相关文章:
Java实现 - 华为2016研发工程师编程题
文章目录删数字符集合数独删数 题目描述 有一个数组 a[N] 顺序存放 0 ~ N-1 ,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以 8 个数 (N7) 为例 :{ 0,1,2…...
nginx的七层负载均衡
文章目录一、负载均衡介绍二、nginx的配置文件三、实验过程总结一、负载均衡介绍 四层负载均衡 所谓四层负载均衡是指OSI七层模型中的传输层, 那么传输层Nginx已经支持TCP/IP的控制, 所以只需要对客户端的请求进行TCP/IP协议的包转发就可以实现负载, 那么他的好处是性能非常快,…...
信息加密技术
介绍信息加密 信息加密是实现数据保密性的手段。 信息加密(Encryption)是将明文信息转换为密文信息,使之在缺少特殊信息时不可读的过程。只有拥有解密方法的对象,经由解密过程,才能将密文还原为正常可读的内容。 现…...
RS485通信总线详解
RS485 总线详解 RS-485 是美国电子工业协会(EIA)在 1983 年批准了一个新的平衡传输标准(Balanced Transmission Standard)也称作差分,EIA 刚开始将 RS(Recommended Standard)做为标准的前缀&am…...
罗技LogitechFlow技术--惊艳的多电脑切换体验
作者:Eason_LYC 悲观者预言失败,十言九中。 乐观者创造奇迹,一次即可。 一个人的价值,在于他所拥有的。所以可以不学无术,但不能一无所有! 技术领域:WEB安全、网络攻防 关注WEB安全、网络攻防。…...
社招中级前端笔试面试题总结
HTTP世界全览 互联网上绝大部分资源都使用 HTTP 协议传输;浏览器是 HTTP 协议里的请求方,即 User Agent;服务器是 HTTP 协议里的应答方,常用的有 Apache 和 Nginx;CDN 位于浏览器和服务器之间,主要起到缓存…...
东南大学研究生上学期英语期末总结
写在前面 作者:夏日 博客地址:https://blog.csdn.net/zss192 本文为东南大学研究生英语上学期期末总结,内容为根据老师所发 PPT 总结得来 相关资料: 点我查看 题型说明 Module 1 International Conference 50% 题型范围&am…...
leaflet 删除所有的marker图层,保留其他图层(085)
第085个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet项目中清除所有的marker图层,保留其他图层,详情请参考源代码。这里面主要用到了(layer instanceof L.Marker ,注意 L.Marker中Marker首字母要大写。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行…...
双因素方差分析全流程
上篇文章讲述了“单因素方差分析全流程总结”,单因素方差分析只是考虑了一个自变量(定类)与一个因变量(定量)之间的关系,但是在实际问题研究中可能研究两个或者几个因素与因变量之间的关系,例如…...
微信公众号抽奖怎么做_分享微信抽奖小程序制作的好处
在H5游戏中,抽奖是最受消费者喜爱的模式之一。将H5微信抽奖活动结合到营销中,可以带来意想不到的效果,带流量和曝光率,所以许多企业也会在做活动时添加上不同类型的H5微信抽奖活动。编辑那么,新手怎么搭建微信抽奖活动…...
逻辑回归—分类问题的操作顺序
对于二元分类问题来说,分类的结果和数据的特征之间仍呈现相关关系,但是y的值不再是连续的,是0~1的跃迁。但是在这个过程中,什么仍然是连续的呢?”是概率,概率是逐渐升高的,当达到一个…...
查询服务器tns文件路径,oracle数据库tns配置方法详解
查询服务器tns文件路径,oracle数据库tns配置方法详解 TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层, 监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器。 TNS是Oracle Net…...
【数据结构】链表
目录 数据结构之链表:: SList.h 1.链表的概念及结构 2.链表的分类 SList.c 3.动态申请一个结点 4.单链表打印 5.单链表销毁 6.单链表头插 7.单链表头删 8.单链表尾插 9.单链表尾删 10.单链表查找 11.单链表在pos之前插入…...
一文讲明Hystrix熔断器
前言 解决问题: 主要防止服务器集群发生雪崩, 起到对服务器的保护作用 GitHub地址:https://github.com/Netflix/Hystrix/wiki 1 Hystrix是什么 1.1 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不…...
第12篇:Java类核心构成要素分析
目录 1、Java类构成要素 1.1 如何定义类 1.2 如何定义变量 1.2.1 类变量 1.2.2 实例变量...
记一次 .NET 某医保平台 CPU 爆高分析
一:背景 1. 讲故事 一直在追这个系列的朋友应该能感受到,我给这个行业中无数的陌生人分析过各种dump,终于在上周有位老同学找到我,还是个大妹子,必须有求必应 😁😁😁。 妹子公司的…...
滤波算法 | 无迹卡尔曼滤波(UKF)算法及其MATLAB实现
目录简介UKF滤波滤波流程和公式MATLAB程序结论简介 本文接着分享位姿跟踪和滤波算法中用到的一些常用程序,希望为后来者减少一些基础性内容的工作时间。以往分享总结见文章:位姿跟踪 | 相关内容目录和链接总结(不断更新中~~~) 本…...
JAVA开发(运行JAR包怎么指定虚拟机内存大小)
我们都使用过 java -jar xxx.jar包去运行jar包。但是有时候要指定jar包运行时内存,该怎么做,而且设置多大怎么衡量,很多人从来没有了解过。 背景: 我们开发java程序,可能涉及到开发环境,测试环境&#x…...
领导力的终极奥义
过去,我曾多次演讲、著书,把自己在长达半个世纪的经营实践中所体悟到的经营思想和方法告诉中国的企业家。 但是,对于任何一家企业来说,不管它倡导了多么高尚的经营哲学,不管它构建了多么精致的管理系统,这样…...
1-MATLAB APP Design-图像的输入与输出
一、APP 界面设计展示 新建一个空白的APP,在此次的学习中,我们会用到编辑字段(文本框)、 按钮、坐标区和面板,首先在界面中拖入一个编辑字段(文本框),在文本框中输入内容:图形的输入与输出,调整背景颜色,字体的颜色为黑色,字体的大小调为25....
Qwen3.5-2B图文对话教程:‘描述这张图’‘提取表格数据’‘生成营销文案’三类实操
Qwen3.5-2B图文对话教程:描述这张图提取表格数据生成营销文案三类实操 1. 认识Qwen3.5-2B轻量化多模态模型 Qwen3.5-2B是阿里云推出的轻量化多模态基础模型,属于Qwen3.5系列的小参数版本(20亿参数)。这个模型特别适合在资源有限…...
服务机器人开发终极指南:从NAO到Pepper的完整编程实战
服务机器人开发终极指南:从NAO到Pepper的完整编程实战 【免费下载链接】awesome-robotics A list of awesome Robotics resources 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-robotics 服务机器人开发是一个融合机械设计、人工智能与编程的跨学科…...
2025届必备的十大降重复率工具实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 用于学术论文、科研报告以及各类文档,提供查重与改写服务的在线工具是降重网站。…...
2025届学术党必备的五大降AI率网站实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于学术写作跟成果发表进程之中,文本重复率的把控乃是一项关键之处。降重网站当作…...
Cortex-M能否运行Linux?架构与系统需求解析
1. Cortex-M与Linux的兼容性解析作为一名嵌入式开发工程师,我经常被问到"Cortex-M能不能跑Linux"这个问题。要回答这个问题,我们需要从处理器架构和操作系统需求两个维度来分析。Cortex-M系列是ARM公司推出的微控制器内核,主要面向…...
怎么样辨别生活中遇到的那些理财平台的真假?
怎么样辨别生活中遇到的那些理财平台的真假?凡是声称高息保本的投资理财平台极有可能是黑平台。尝试用手机官方应用商城搜索理财软件,如果是别人通过聊天软件发链接给你安装的,不是正规手机应用商城下载的,且在应用商城无法搜索到…...
intv_ai_mk11实际作品:10组真实业务提示词生成结果(含政务/教育/金融)
intv_ai_mk11实际作品:10组真实业务提示词生成结果(含政务/教育/金融) 1. 模型能力概览 intv_ai_mk11是基于Llama架构的中等规模文本生成模型,特别适合处理通用问答、文本改写、解释说明等任务。通过本地部署的Web界面ÿ…...
机器人控制入门:用Pi0具身智能v1镜像5分钟搭建你的第一个动作预测Demo
机器人控制入门:用Pi0具身智能v1镜像5分钟搭建你的第一个动作预测Demo 1. 快速部署Pi0具身智能镜像 1.1 选择并启动镜像 在云平台镜像市场中搜索并选择"ins-pi0-independent-v1"镜像,点击"部署实例"按钮。首次启动大约需要1-2分钟…...
OpenHarmony驱动开发实战:手把手教你点亮一块MIPI DSI屏幕(Hi3516DV300平台)
OpenHarmony驱动开发实战:Hi3516DV300平台MIPI DSI屏幕点亮全流程解析 当一块全新的MIPI DSI屏幕交到嵌入式开发者手中时,从电路连接到最终点亮显示,中间需要跨越硬件接口适配、驱动参数配置、时序调试等多重技术关卡。本文将基于Hi3516DV300…...
Llama-3.2V-11B-cot算法解析实战:图解卷积神经网络核心原理
Llama-3.2V-11B-cot算法解析实战:图解卷积神经网络核心原理 你是不是经常听到“卷积神经网络”这个词,感觉它既神秘又强大,但一看到那些复杂的数学公式和网络结构图就头疼?别担心,今天咱们就换个方式,用大…...
