数据结构与算法
算法基础
yeyu_xing
╔══╗ ♪
║██║ ♫
║ ( ● ) ♫
╚══╝♪ ♪
展开
-
回文日期
题目描述代码:package com.it.lanqiao;import java.util.*;/** * 回文日期 */public class Example10 { public static void main(String[] args) { String dateStr = "20200202"; int year = Integer.parseInt(dateStr.substring(0, 4)); int mon原创 2021-03-23 23:40:53 · 209 阅读 · 1 评论 -
生成回文数
题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。所谓回文数就是左右对称的数字,比如:585,5885,123321…当然,单个的数字也可以算作是对称的。小明发现了一种生成回文数的方法: 比如,取数字 19,把它与自己的翻转数相加: 19 + 91 = 110,如果不是回文数,就再进行这个过程: 110 + 011 = 121 这次是回文数了。200 以内的数字中,绝大多数都可以在 30 步以内变成回文数,只有一个数字很特殊,就算迭代了 1000 次,它还是顽固地拒原创 2021-03-23 13:29:14 · 637 阅读 · 2 评论 -
快速排序
快速排序的核心思想(升序):从一个数组里面随意选取一个数作为基准数,将比基准数小的放在基准数的左边、比基准数大的放在基准数的右边,然后再对分成的左右两边进行同样的递归处理,最终达到数组有序package sort;import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] arr = {3, -1, 6, 24, -13, 9, 42};原创 2020-10-05 16:59:24 · 524 阅读 · 3 评论 -
选择与冒泡排序算法
一、选择排序1、Pythonlst = [5, 2, 10, 15, 9, 1, 6]print('排序前:{}'.format(' '.join([str(i) for i in lst])))for i in range(len(lst) - 1): for j in range(i + 1, len(lst)): if lst[i] > lst[j]: lst[i], lst[j] = lst[j], lst[i]print('排序后原创 2020-07-27 01:51:41 · 284 阅读 · 0 评论 -
算法题1—翻硬币
package alg;import java.util.Arrays;public class Test { public static void main(String[] args) { String str = "*o**o***o***"; String target = "*o***o**o***"; char[] strArr = str.toCharArray(); char[] targetArr = targ原创 2020-07-04 21:41:29 · 581 阅读 · 0 评论 -
Java得到字符串里某个元素的所有出现位置
字符串:“I love Java I love Python I love Internet”要求:找出字符串里所有的love及其出现位置与出现次数。这次就不写注释了,相信在座的各位都看得懂吧代码:package net.dc.lesson20.exercise;public class GetStrPosition { public static void main(String[] args) { String str = "I love Java I love P原创 2020-06-16 22:07:42 · 12406 阅读 · 3 评论 -
Java实现字符串排序
代码如下:package net.dc.algchallenge;import java.util.Arrays;import java.util.Scanner;public class StrSort { public static void main(String[] args) { Scanner sc = new Scanner(System.in);//引入输入的功能 String totalStr = "";//因不能使用列表等可变长度集合,原创 2020-06-09 01:31:44 · 3465 阅读 · 1 评论 -
Java计算一年中的具体天数
一、不使用各种花里胡哨package net.dc.algchallenge;import java.util.Scanner;import java.util.Arrays;public class JudgeDays { public static void main(String[] args) { Scanner sc = new Scanner(System.in); final int[] SPECIFICMONTH$1 = {31, 28,原创 2020-06-09 01:04:21 · 3399 阅读 · 7 评论 -
Java将2019拆分成三个素数平方和
主要分析:(1):将2019拆分成三个素数平方和,就要先得到三个素数,这也就涉及到了三个素数的范围,我们不妨从其中最大的质数推论,因为是三个素数的平方和,所以最大的素数必然小于20192\sqrt[2]{2019}22019,所以现在也就了解了三个素数的大致范围,那么也就可以将这三个素数放进数组中操作;(2):其次,三个素数都是基于他们的范围随机产生的,所以可以利用到三重循环,但也因为随机的原因,最后结果可能重复出现,例:(7、11、43)和(11、7、43),可以发现,这两对质数,虽然顺序不一,但表达的原创 2020-05-29 13:37:14 · 1124 阅读 · 3 评论 -
Java打印实心和空心钻石
总体分析: 首先,不论打印平面图形或者3D图形,都是采用分层打印的方法;利用双重循环进行打印,外层控制打印的层数,内层控制每一层打印的内容,当打印完一层后,就换行打印下一层。1:打印实心钻石 代码如下:package net.algchallenge;import java.util.Scanner;public class PrintSolidDiamond { pu...原创 2020-04-27 17:29:49 · 1567 阅读 · 1 评论