JAVA题目笔记(十五)经典算法题
一、按要求排序
要求:定义数组并存储一些女朋友对象,利用Arrays中的sort方法进行排序
属性包括:姓名,年龄,身高
按照年龄大小进行排序,年龄一样按照身高排序,身高一样按照姓名字母进行排序。
(姓名不含中文或者字符)
自己的:
import java.util.Arrays;
import java.util.Comparator;public class Main {public static void main(String[] args){Girlfirend g1=new Girlfirend("Sushan",18,160);Girlfirend g2=new Girlfirend("Suhai",18,161);Girlfirend g3=new Girlfirend("Sudongpo",17,161);Girlfirend[] arr=new Girlfirend[]{g1,g2,g3};Arrays.sort(arr, new Comparator<Girlfirend>() {@Overridepublic int compare(Girlfirend o1, Girlfirend o2) {if(o1.getAge()!=o2.getAge())return o1.getAge()-o2.getAge();else {if(o1.getHeight()!=o2.getHeight())return o1.getHeight()-o2.getHeight();else{if(o1.getName().charAt(0)==(o2.getName().charAt(0))){return 0;}elsereturn o1.getName().charAt(0)-o2.getName().charAt(0);}}}});System.out.println("_____");System.out.println(String.valueOf(g1)); //返回对象的字符串表达形式//toString 底层代码同样是返回数组中每个元素的字符串表达形式System.out.println(Arrays.toString(arr));}
}
答案:
import java.util.Arrays;
import java.util.Comparator;public class Main {public static void main(String[] args){Girlfirend g1=new Girlfirend("Sushan",18,160);Girlfirend g2=new Girlfirend("Suhai",18,161);Girlfirend g3=new Girlfirend("Sudongpo",17,161);Girlfirend[] arr=new Girlfirend[]{g1,g2,g3};Arrays.sort(arr, new Comparator<Girlfirend>() {@Overridepublic int compare(Girlfirend o1, Girlfirend o2) {int temp=o1.getAge()-o2.getAge();temp=temp==0?o1.getHeight()-o2.getHeight():temp;temp=temp==0?o1.getName().compareTo(o2.getName()):temp;if(temp==0)return 0;else if(temp>0)return 1;else return -1;}});System.out.println(Arrays.toString(arr));}
}
知识点:
运算符为条件判断的三元运算符 + String中的compareTo方法

二、不死神兔
要求:有一对兔子,从出生后的第三个月起每个月都生一对兔子,小兔子长到三个月后每个月又生一对兔子,假如兔子都不死,问第十二个月兔子对数为多少对?
法一:
斐波那契函数:
public class Main {public static void main(String[] args){//有一对兔子,从出生后的第三个月起每个月都生一对兔子,小兔子长到三个月后每个月又生一对兔子,假如兔子都不死,问第十二个月兔子对数为多少对?int[] arr=new int[12];for(int i=0;i<arr.length;i++){if(i<2)arr[i]=1;elsearr[i]=arr[i-2]+arr[i-1];System.out.println(arr[i]);}}
}
法二:
递归:
public class Main {public static void main(String[] args){//有一对兔子,从出生后的第三个月起每个月都生一对兔子,小兔子长到三个月后每个月又生一对兔子,假如兔子都不死,问第十二个月兔子对数为多少对?System.out.println(rabbitborn(12));}public static int rabbitborn(int month){if(month==1||month==2)return 1;elsereturn rabbitborn(month-1)+rabbitborn(month-2);}
}
三、猴子吃桃
要求:有一堆桃子,猴子第一天吃了其中的一半,并多吃了一个,以后每天猴子都吃当前剩下的一半,然后再多吃一个,第十天的时候(还没吃)发现只剩下一个桃子了,请问最初一共多少个桃子?
public class Main {public static void main(String[] args){//有一堆桃子,猴子第一天吃了其中的一半,并多吃了一个,以后每天猴子都吃当前剩下的一半,然后再多吃一个,// 第十天的时候(还没吃)发现只剩下一个桃子了,请问最初一共多少个桃子//法一:int[] arr=new int[10];arr[0]=1;for(int i=1;i<arr.length;i++){arr[i]=2*(arr[i-1]+1);}System.out.println(arr[arr.length-1]);//法二:递归System.out.println(getPeach(1));}public static int getPeach(int day){int temp=day;if(temp==10){return 1;}else return 2*(getPeach(temp+1)+1);}
}
四、爬楼梯
要求:爬楼梯,有时候一次爬一个台阶,有时候一次俩,有时候一次三,如果这个楼梯有20个台阶,一共有多少种爬法?

public class Main {public static void main(String[] args){//爬楼梯,有时候一次爬一个台阶,有时候一次俩,有时候一次三,如果这个楼梯有100个台阶,一共有多少种爬法System.out.println(getcount(20));}public static int getcount(int step){if(step==1)return 1;if(step==2)return 2;if(step==3)return 4;return getcount(step-1)+getcount(step-2)+getcount(step-3);}}
相关文章:
JAVA题目笔记(十五)经典算法题
一、按要求排序 要求:定义数组并存储一些女朋友对象,利用Arrays中的sort方法进行排序 属性包括:姓名,年龄,身高 按照年龄大小进行排序,年龄一样按照身高排序,身高一样按照姓名字母进行排序。…...
「Mac玩转仓颉内测版8」入门篇8 - Cangjie函数与方法
本篇介绍Cangjie编程语言中的函数与方法,帮助理解如何通过函数封装重复操作,提升代码的复用性和可维护性。 关键词 Cangjie函数方法定义参数传递返回值模块化与复用性 一、什么是函数? 函数是一个代码块,用于接收参数、执行操作…...
2024最新版JavaScript逆向爬虫教程-------基础篇之Proxy与Reflect详解
目录 一、监听对象的操作二、Proxy基本使用2.1 创建空代理2.2 定义捕获器2.2.1 Proxy的set和get捕获器2.2.2 Proxy(handler)的13个捕获器 三、Reflect的作用3.1 Reflect的使用3.2 Reflect其余方法(9个)3.3 Proxy与Reflect中的receiver参数3.4 Reflect中的construct方法 ECMAScr…...
代码修改材质参数
1、 如何得到对象使用的材质 获取到对象的渲染器Renderer Mesh Renderer和Skinned Mesh Renderer都继承Renderer,可以用里式替换原则父类获取、装载子类对象 通过渲染器获取到对应材质 可以利用渲染器中的material或者sharedMaterial来获取物体的材质࿰…...
[C++11] 包装器 : function 与 bind 的原理及使用
文章目录 functionstd::function 的基本语法使用 std::function 包装不同的可调用对象function包装普通成员函数为什么要传入 this 指针参数?传入对象指针与传入对象实例的区别 例题 :150. 逆波兰表达式求值 - ⼒扣(LeetCode) bin…...
java项目-jenkins任务的创建和执行
参考内容: jenkins的安装部署以及全局配置 1.编译任务的general 2.源码管理 3.构建里编译打包然后copy复制jar包到运行服务器的路径 clean install -DskipTests -Pdev 中的-Pdev这个参数用于激活 Maven 项目中的特定构建配置(Profile) 在 pom.xml 文件…...
单片机中的BootLoader(重要的概念讲解)
文章目录 一、链接地址和执行地址1. 链接地址(Load Address)2. 执行地址(Execution Address)链接地址与执行地址的关系实际工作流程总结二、相对跳转和绝对跳转1. 相对跳转(Relative Jump)2. 绝对跳转(Absolute Jump)3. `BX` 和 `BL` 指令总结三、散列文件1. 散列文件的…...
【数据分享】中国食品工业年鉴(1984-2023) PDF
数据介绍 一、《中国食品工业年鉴》(以下简称《年鉴》)是一部全面反映上一年度全国食品工业发展情况纪年性、资料性、权威大型年刊。《年鉴(2023)》系统收录了全国食品行业各专业和 31个省(自治区、直辖市)2022年食品工业经济运行情况的综述,《年鉴》是由中国食品工…...
优选算法 - 1 ( 双指针 移动窗口 8000 字详解 )
一:双指针 1.1 移动零 题目链接:283.移动零 class Solution {public void moveZeroes(int[] nums) {for(int cur 0, dest -1 ; cur < nums.length ; cur){if(nums[cur] 0){}else{dest; // dest 先向后移动⼀位int tmp nums[cur];nums[cur] num…...
FairyGUI和Unity联动(入门篇)
一、FairyGUI编辑器中 1.新建按钮、新建组件 编辑器中界面简易设计如下 2.文件-发布设置-发布路径:自己unity项目Resources所在的路径 二、Unity 使用代码展示UI using FairyGUI; using System.Collections; using System.Collections.Generic; using UnityEngi…...
Go:文件输入输出以及json解析
文章目录 读取用户的输入文件读写读文件写文件 文件拷贝io包中接口的概念JSON 数据格式编码解码任意的数据: 读取用户的输入 从键盘和标准输入 os.Stdin 读取输入,最简单的办法是使用 fmt 包提供的 Scan… 和 Sscan… 开头的函数 看如下的程序 func t…...
编写红绿起爆线指标(附带源码下载)
编写需求: 想问问有没有能标注行情起爆点的指标。 效果展示: 红线上,出现绿柱转红柱做多。 蓝线下,出现红柱转绿柱做空。 源码展示(部分源码,完整源码需下载源码文件): IsMainIn…...
设计模式(四)装饰器模式与命令模式
一、装饰器模式 1、意图 动态增加功能,相比于继承更加灵活 2、类图 Component(VisualComponent):定义一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent(TextView):定义一个对象,可以给这个对象添加一…...
Android11 修改系统语言
1.定义一个view <RelativeLayoutandroid:id"id/rlChooseLanguage"style"style/SettingAboutItem"><TextViewstyle"style/SettingAboutItemTextView"android:text"string/choose_language" /><ImageView style"st…...
vue3 查看word pdf excel文件
也是在网上找的基础上修改的 可以直接使用 npm install vue-office/docx npm install vue-office/excel npm install vue-office/pdf<template><divclass"Office-Preview"v-loading"loading"element-loading-text"文件加载中...">…...
java八股-垃圾回收机制-垃圾回收算法,分代回收,垃圾回收器
文章目录 垃圾回收算法引用计数法可达性分析算法 jvm垃圾回收算法标记清除算法标记整理算法复制算法本章总结 JVM中的分代回收本章总结 JVM有哪些垃圾回收器?1.串行垃圾收集器2.并行垃圾收集器3.CMS(并发)垃圾收集器本章小结 详细聊一下G1垃圾…...
iSCSI 和FC的概述
一、技术基础与架构 iSCSI 技术基础:iSCSI是基于TCP/IP协议的存储网络协议,它实现了在IP网络上运行SCSI协议。架构:iSCSI协议栈包括SCSI层、iSCSI层、TCP/IP层等,通过标准的以太网技术实现存储数据的传输。 FC 技术基础࿱…...
一文了解Android中的AudioFlinger
AudioFlinger 是 Android 音频框架中的一个核心组件,负责管理音频流的混合和输出。它是 Android 音频系统服务的一部分,作为音频框架和硬件之间的桥梁,接收应用程序的音频请求、进行混音处理,并最终通过音频硬件输出声音。 ![在这…...
超全面!一文带你快速入门HTML,CSS和JavaScript!
作为一名后端程序员,在开发过程中避免不了和前端打交道,所以就要了解一些前端的基础知识,比如三剑客HTML,CSS,JavaScript,甚至有必要学习一下Vue、React等前端主流框架。 学习文档:https://www.w3school.com.cn/ 一…...
C语言 | Leetcode C语言题解之第557题反转字符串中的单词III
题目: 题解: char* reverseWords(char* s) {int length strlen(s);char* ret (char*)malloc(sizeof(char) * (length 1));ret[length] 0;int i 0;while (i < length) {int start i;while (i < length && s[i] ! ) {i;}for (int p …...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
