![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java学习
、信仰_
一个不甘平庸的平凡人,致力于在前端开发领域有所建树
展开
-
LeetCode:860. 柠檬水找零 贪心
LeetCode:860. 柠檬水找零题目描述方法一:暴力+贪心先判断bills[0] 如果大于5则没办法找零 直接返回false然后类似于桶排序定义一个数组num ,用num[0]存5 num[1]存10 num[2]存20遍历数组bills[] 如果bills[i]=5 num[0]++如果bills[i]=10 num[1]++ 这时候看是否有五元的储蓄 没有则返回false 有的话 num[0]–依次类推class Solution { public boolea原创 2022-03-29 22:07:16 · 107 阅读 · 0 评论 -
面试常见的两种宽(深)度优先(BFS)遍历 Java实现(附有详细解析)
宽度优先搜索(BFS, Breadth FirstSearch)是一个针对图和树的遍历算法。发明于上世纪50年代末60年代初,最初用于解决迷宫最短路径和网络路由等问题第一种:使用map纪录层数public static int maxWidthUseMap(Node head) { if (head == null) { return 0; } //队列 Queue<Node> queue = new LinkedList<>(); queue.a.原创 2022-03-26 19:18:33 · 672 阅读 · 1 评论 -
LeetCode 509. 斐波那契数 三种方法 java实现
LeetCode 509. 斐波那契数题目描述LeetCode页面方法一:常规方法class Solution { public int fib(int n) { int res = 0; if (n < 2) { res = n; } else { res = fib(n - 1) + fib(n - 2); } return res; } }方法二:滚动数组参考于LeetCode官方题解class Solution3原创 2022-03-26 10:28:08 · 1055 阅读 · 0 评论 -
LeetCode5. 最长回文子串 JAVA实现 暴力求解&&动态规划
题目描述方法一:动态规划定义一个二维数组dp[i][j] 来表示子串 s[i…j] (字符串s中从下标i为字符串的头到下标j位置为字符串的尾)是否为回文字符串 ,是回文字符串则dp[i][j]=true,否则dp[i][j]=false;初始化表格对角线元素全为true 0 1 2 3 4 0 t 1 t 2 t 3 t 4 t动原创 2022-03-25 22:32:12 · 644 阅读 · 0 评论 -
LeetCode455. 分发饼干 采用贪心算法(附有详细解析 JAVA实现)
题目描述什么是贪心算法贪心算法(Greedy algorithm),又称贪婪算法。是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而使得问题得到全局最优解。贪心的算法的设计就是要遵循某种规则,不断地选取当前最优解的算法设计方法。题目分析先将两个数组排序用最小尺寸的饼干与最小胃口的小孩比如果能满足小孩的胃口则同时访问下一个小孩和下一个饼干并且结果加1如果满足不了小孩的胃口,那么 用下一个饼干的尺寸与当前小孩的胃口作比较,以此类推。代码实现class So原创 2022-03-22 21:50:55 · 682 阅读 · 0 评论 -
LeetCode451. 根据字符出现频率排序(含详细Java解析)采用桶排序
LeetCode451. 根据字符出现频率排序(含详细Java解析)采用桶排序题目描述什么是桶排序可以通过这篇文章的学习掌握桶排序链接附上:https://blog.csdn.net/sinat_51673411/article/details/123586187?spm=1001.2014.3001.5501步骤分析遍历原始字符串,找到出现最大的次数值创建大小为最多次数的StringBuffer数组循环遍历 得到StringBuffer[3]=abc这样的各个StringBuffe原创 2022-03-19 11:00:06 · 681 阅读 · 2 评论 -
java实现桶排序(详细解析)
什么是桶排序桶排序 (Bucketsort),是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是比较排序,他不受到 O(n log n) 下限的影响。桶排序思想桶排序的思想是,若待排序的记录的关键字在一个明显有限范围内时,可设计有限个有序桶,每个桶只能装与之对应的值,顺序输出各桶的值,将得原创 2022-03-18 22:43:44 · 5757 阅读 · 10 评论 -
LeetCode347. 前 K 个高频元素(含详细解析JAVA实现)
LeetCode347. 前 K 个高频元素题目描述步骤分析首先 用map来存储nums[]中各个数字出现的个数然后 创建也给优先队列并给它添加compare()使存储队列内的元素按照key值从小到大排列把map中的值添加到优先队列中(只加入k个元素)使优先队列中的元素就是题目所需要的定义一个数组存放最终结果参考代码class Solution { public int[] topKFrequent(int[] nums, int k) { //用map来存储nu原创 2022-03-15 22:36:36 · 868 阅读 · 0 评论 -
蓝桥杯 回文日期【第十一届】【省赛】【B组】Java (含详细注释)
分析:这个题目有如下要求:是否是合法日期是否是回文数字是否是ABABBABA类型的数字代码如下:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int inputYear = input.nextInt(); int flag = 1; while (inpu.原创 2022-03-02 10:36:20 · 581 阅读 · 0 评论 -
编写一个程序,实现36选7,选出来的7个数不能重复(类似于选彩票,两种方法List和Set)
**方法一: 用List集合实现36选7摇号 **步骤如下:(1)创建产生随机数的对象(2)创建一个存储随机数的List集合。(3)定义一个统计变量。从0开始。(4)判断统计遍历是否小于7是:先产生一个随机数,判断该随机数在集合中是否存在。如果不存在:就添加,统计变量++。如果存在:就不搭理它。否:循环结束(5)遍历集合。import java.util.ArrayList;import java.util.List;import java.util.Random;publi原创 2022-02-03 21:46:43 · 2758 阅读 · 0 评论 -
使用Java 编程定义一个汽车类Car
编程定义一个汽车类Car要求如下:(1)定义成员变量:品牌(String brand),价格(double price),颜色(String color),销售日期(Calendar date);(2)定义无参构造方法和带参构造方法,其中无参构造方法调用带参构造方法来初始化类中的变量;(3)定义上述成员变量所对应的getXxx()/setXxx()方法;以及一个显示所有成员信息的toString()方法;(4)定义一个测试类CarDemo,使用无参构造方法创建Car对象car1,调用toSt原创 2022-02-03 21:42:37 · 21339 阅读 · 0 评论 -
基于Java的飞机大战的课程设计与实现(支持阿里云盘下载源码)
源码飞机大战游戏源码及图片文件(有超详细的注释呦)游戏介绍游戏操作比较简单,运行代码后,点击“开始游戏”既可以进入游戏,通过鼠标移动实现我方飞机的移动,我方飞机自动发射子弹,敌方飞机在十二个轨道随机生成,如果我方飞机与之碰撞,则游戏结束;如果我方飞机发射的子弹与敌方飞机相撞,则积分加一,敌方飞机消失。当敌方飞机出现相对应的数量之后,敌方BOSS出现,敌方BOSS可以发射子弹,并在游戏界面最上端来回移动,当我方飞机发射的子弹射中敌方飞机时,敌方BOSS生命值减少,直至生命值为零,则我方胜利!!!结构介原创 2022-01-15 21:49:35 · 3150 阅读 · 0 评论