
java 解题训练
文章平均质量分 79
zp8126
二十年Java相关开发和教学培训的老男孩!
有问题可以微信:zp11481062
展开
-
6 个典型的Java 设计模式应用场景题
设计模式是一种在软件工程领域广为应用的概念,它代表了在特定上下文中针对常见设计问题的经过验证的、可复用的解决方案。设计模式并非具体代码片段或API,而是对在大量实践中形成的、能够解决特定设计挑战的通用结构和行为模式的描述。这些模式反映了资深软件工程师的经验总结,旨在提高代码的可重用性、可读性、可维护性,并帮助构建稳健、灵活且易于扩展的软件系统。原创 2024-04-02 23:11:06 · 934 阅读 · 0 评论 -
18 道 Java 字符串相关算法题思路简介及代码实现
字符串(String)相关的问题占据着举足轻重的地位。这是因为字符串作为基本的数据类型之一,广泛应用于各类编程场景,包括但不限于数据传输、文件处理、用户界面展示、数据库操作、网络通信等。熟练掌握字符串操作不仅是日常编程工作的必备技能,也是评估面试者编程基础、逻辑思维和问题解决能力的重要依据原创 2024-04-02 22:27:24 · 1484 阅读 · 0 评论 -
Java 递归算法系列:建议收藏的 13 个经典问题的代码实现详解
递归是一种解决问题的方法,尤其常见于数学和计算机科学中,它是指在一个函数或过程的定义中直接或间接地调用自身的一种编程技术递归的优点在于它能够简洁地表达一些自然地按照“大问题分解为相似的小问题”的模式解决的问题,如树和图的遍历、数据结构的构建等。然而,递归也需要注意控制递归深度以防止栈溢出,并且有时需要借助额外的数据结构(如栈或队列)或记忆化技术来提高效率,尤其是在解决具有大量重复子问题的情况时。原创 2024-03-30 21:31:46 · 1120 阅读 · 0 评论 -
Java 之 IO 流-文件的加密、断点续传、切割、递归拷贝、序列化克隆 等代码实现
IO流,这章内容大家都感觉内容多,杂,难。下面有几个作业题,你会几个?描述:有一个很大的文件需要拷贝,但是U盘只有1G,该怎么办?比如现有一个4G大的文件,需要分割成多个500M的文件,存在指定的文件夹中。文件切割后,还需要还原合并出原来的文件。描述:选择一个指定的目录,下面包含多个不同的文件,实现文件合并成一个文件。并再实现文件拆分还原为原来文件。注意:文件中要包含文件名及大小的信息,因为拆分时需要还原为原来的文件名及大小。原创 2024-03-29 21:06:44 · 982 阅读 · 0 评论 -
13 道典型 Java 面试算法题及解答
思路:首先需要了解正则表达式,\d 表示数字。{n,m}表示字符个数。可以使用正则表达式从第6位之后开始截取 8 位即可取出年月日。// 测试是否为合法的身份证号码 String [ ] strs = {i ++) {// 用于提取出生日字符串 Pattern p3 = Pattern . compile("(\\d{4})(\\d{2})(\\d{2})");// 用于将生日字符串进行分解为年月日 for(int i = 0;原创 2024-03-27 22:01:41 · 4512 阅读 · 1 评论 -
Java练习:进制转换、日期计算、乘法表两种实现
思路:二进制即为逢 2 进 1。所以可以每次整除2,取出余数,逆序拼接成字符串。基本和上面转换思想相同,但是十六进制和其他二进制八进制不同之处就是多出了 ABCDEF六个字符。1.先设置当月 1 日,然后计算出 1 日是星期几,这样可以确定 1号在周几的开始位置。考点 主要是如何能巧妙的使用break,这里主要是在case 月份,要反着来写即可。在一层循环中使用了两个条件。每行的列数正好为当前的行号。思路关键点:本题的关键点就是需要控制换行和每月天数问题。思路:本题主要限制的实现方式只能使用switch。原创 2024-03-27 21:06:14 · 535 阅读 · 0 评论 -
Java 数组相关的经典题目举例详解
冒泡排序(Bubble Sort) - 通过不断交换相邻元素的位置,逐步将最大或最小的元素“冒泡”到序列的两端。快速排序(Quick Sort) - 使用分治策略,选取一个基准元素,将数组划分为两部分,左边的元素都小于基准,右边的元素都大于基准,然后递归地对左右两边进行快速排序。选择排序(Selection Sort) - 每一轮在剩余未排序的元素中找到最小(或最大)的元素,放到已排序部分的末尾。原创 2024-03-26 21:38:26 · 670 阅读 · 0 评论 -
Java 实现经典排序算法的思路详解
冒泡排序(Bubble Sort) - 通过不断交换相邻元素的位置,逐步将最大或最小的元素“冒泡”到序列的两端。快速排序(Quick Sort) - 使用分治策略,选取一个基准元素,将数组划分为两部分,左边的元素都小于基准,右边的元素都大于基准,然后递归地对左右两边进行快速排序。选择排序(Selection Sort) - 每一轮在剩余未排序的元素中找到最小(或最大)的元素,放到已排序部分的末尾。原创 2024-03-26 21:15:40 · 743 阅读 · 0 评论 -
Java 双色球抽号算法的两种实现思路对比
但是在现实场景的抽号中是不存在判断重复问题的,因为,从箱子里取出的号码是不会再放入箱子的。下次抽取的号码是在之前抽出的剩余的号码中抽取的。上面的算法,存在的主要问题就是每次随机数都是一个独立的事件,所以每次的随机数是不可控,可能出现重复,所以就需要在放入前先判断重复问题。“双色球”每注投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1--33中选择;蓝色球号码从1--16中选择。6个数需要随机且不能重复,所以需要实现思路,主要是针对红球。“双色球”彩票投注区分为红色球号码区和蓝色球号码区。原创 2024-03-25 23:34:31 · 546 阅读 · 0 评论