算法题java
一、四向链表,输入n生成一个多维4向链表
@Datastatic class ListNode<T>{private T val;ListNode<T> up,down,left,right;public ListNode(T val){this.val = val;}}public static void main(String[] args){ListNode<Integer> node = getResult(8);ListNode<Integer> row = node;while(row != null){ListNode currNode = row;while(currNode != null){System.out.print(currNode.val + " ");currNode = currNode.right;}System.out.println("");row = row.down;}}public static ListNode<Integer> getResult(int n){if(n<=0){return null;}ListNode<Integer> head = new ListNode<>(11);head.left = null;head.up = null;ListNode<Integer> current = head;for(int i = 2 ; i <= n ; i++){ListNode<Integer> node = new ListNode<>(10 + i);current.right = node;node.left = current;current = node;}ListNode<Integer> prevHead = head;ListNode<Integer> rowCurrent = prevHead;for(int row = 2 ; row <= n ; row++){ListNode<Integer> rowHead = new ListNode<>(row * 10 + 1);prevHead.down = rowHead;rowHead.up = prevHead;current = rowHead;for(int col = 2; col <= n ; col++){ListNode<Integer> node = new ListNode<>(row * 10 + col);node.left = current;current.right = node;rowCurrent = rowCurrent.right;rowCurrent.down = node;node.up = rowCurrent;current = node;}prevHead = rowHead;rowCurrent = prevHead;}return head;}
二、输入树高,生成一个满二叉树。BinaryTree
static class TreeNode {int val;TreeNode left;TreeNode right;TreeNode parent;public TreeNode(int val) {this.val = val;this.left = null;this.right = null;this.parent = null;}}public static TreeNode generate(TreeNode parent,int depth) {if (depth == 0) {return null;}TreeNode node = new TreeNode(depth);node.left = generate(node,depth - 1);node.right = generate(node,depth - 1);node.parent = parent;return node;}public static void main(String[] args) {TreeNode root = new TreeNode(1);root = generate(root,3);printTree(root);}public static void printTree(TreeNode root) {if (root == null) {return;}System.out.print(root.val + " ");printTree(root.left);printTree(root.right);}
其它方式参考:https://blog.csdn.net/wellsoonqmail/article/details/128262114
三、java实现双链表
static class ListNode{private int val;//值private ListNode prev;//前驱private ListNode next;//后继public ListNode(int val){this.val=val;}}public ListNode head;//双向链表的头节点public ListNode last;//双向链表的尾节点public void display(){ListNode cur=head;while(cur!=null){System.out.print(cur.val+" ");cur=cur.next;}System.out.println();}public int size(){ListNode cur=head;int count=0;while(cur!=null){count++;cur=cur.next;}return count;}public void addFirst(int data) {ListNode node = new ListNode(data);//链表为空时if (head == null) {head = node;last = node;}//有头指针,不为空else {node.next = head;head.prev = node;head = node;}}public void addLast(int data){ListNode node=new ListNode(data);//当链表为空if(head==null){head=node;last=node;}//有头指针,不为空else{last.next=node;node.prev=last;last=last.next;}}//删除第一次出现关键字key的节点,一共三种情况public void remove(int key){ListNode cur = head;while (cur != null) {if(cur.val == key) {//1.当删除头节点if(cur == head) {head = head.next;//1.1当头指针不为空时if(head != null) {//考虑只有一个节点的情况下head.prev = null;}else {//1.2头指针为空时last = null;}}else {//2.删除中间节点 和 3.尾巴节点if(cur.next != null) {//删除中间节点cur.prev.next = cur.next;cur.next.prev = cur.prev;}else {//尾巴节点cur.prev.next = cur.next;last = last.prev;}}return;}else {cur = cur.next;}}}
参照:https://blog.csdn.net/m0_63732435/article/details/127195219
四、假设有n个面试官,每个面试者预约的时间是[ai, bi](包括边界),1号面试官在bi时刻结束后,至多能继续bi+1时刻开始的面试,请帮忙计算1号面试官至多能面试多少个面试者。//贪婪策略:每次选择最早结束的活动
private static int [][] times = {{1,3},{1,4},{3,5},{4,5}};public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();Arrays.sort(times, (o1, o2) -> {if(o1[1] == o2[1]){return o1[0] - o2[0];}else{return o1[1] - o2[1];}});int res = 1;int end = times[0][1];for(int i = 1; i < n; i++){if(times[i][0] > end){end = times[i][1];res++;}}System.out.println(res);}
参照:https://blog.csdn.net/qq_45908682/article/details/124661279
贪婪算法:https://blog.csdn.net/TuttuYYDS/article/details/124636914
相关文章:
算法题java
一、四向链表,输入n生成一个多维4向链表 Datastatic class ListNode<T>{private T val;ListNode<T> up,down,left,right;public ListNode(T val){this.val val;}}public static void main(String[] args){ListNode<Integer> node getResult(8);…...
MySQL数据的基础语法
MySQL 是一种强大的关系型数据库管理系统(RDBMS),它使用 SQL(Structured Query Language)来管理和操作数据。以下是 MySQL 数据库的基础 SQL 语法,包括创建数据库、创建表、插入、查询、更新和删除数据等基…...
阿里面试(持续更新)
一面: 1 HashMap 实现原理,ConcurrentHashMap 实现原理 HashMap和ConcurrentHashMap都是存储键值对的数据结构,不同的是HashMap是线程不安全的,ConcurrentHashMap是线程安全的,HashMap在高并发情况下会出现数据不一致…...
龙芯3A3000源码编译安装deepin-ide
安装环境 系统为统信专业版1050 CPU为龙芯3A3000 安装步骤 1.安装所有依赖库 sudo apt-get install git debhelper cmake qt5-qmake qtbase5-dev qttools5-dev qttools5-dev-tools lxqt-build-tools libssl-dev llvm llvm-dev libclang-dev libutf8proc-dev libmicrohttpd-d…...
学成在线第二天-查询课程、查询课程分类、新增课程接口实现以及跨域的处理思路和全局异常处理的使用以及面试题
目录 一、接口的实现 二、跨域的处理思路 三、全局异常处理 四、面试题 五、总结 一、接口的实现 1. 查询课程接口 思路: 典型的分页查询 按需查询 模糊查询的查询 controller: ApiOperation(value "课程列表", notes "课程…...
【OpenCV概念】 11— 对象检测
一、说明 这都是关于物体识别的。物体识别是指通过计算机视觉技术,自动识别图像或视频中的物体及其属性和特征,是人工智能领域的一个分支。物体识别可应用于多个领域,包括工业自动化、智能家居、医疗、安防等。请随时阅读这篇文章:…...
TensorRT学习笔记--常用卷积、激活、池化和FC层算子API
目录 1--Tensor算子API 1-1--卷积算子 1-2--激活算子 1-3--池化算子 1-4--FC层算子 2--代码实例 3--编译运行 1--Tensor算子API TensorRT提供了卷积层、激活函数和池化层三种最常用算子的API: // 创建一个空的网络 nvinfer1::INetworkDefinition* network …...
【Edabit 算法 ★☆☆☆☆☆】 Less Than 100?
【Edabit 算法 ★☆☆☆☆☆】 Less Than 100? language_fundamentals math validation Instructions Given two numbers, return true if the sum of both numbers is less than 100. Otherwise return false. Examples lessThan100(22, 15) // true // 22 15 37lessTha…...
C++中的智能指针:更安全、更便利的内存管理
在C++编程中,动态内存管理一直是一个重要且具有挑战性的任务。传统的C++中,程序员需要手动分配和释放内存,这往往会导致内存泄漏和悬挂指针等严重问题。为了解决这些问题,C++11引入了智能指针(Smart Pointers)这一概念,它们是一种高级的内存管理工具,可以自动管理内存的…...
google登录k8s dashboard ui显示“您的连接不是私密连接”问题解决梳理
1.问题描述 OS Version:CentOS Linux release 7.9.2009 (Core) K8S Version:Kubernetes v1.20.4 k8s dashboard ui安装完毕后,通过google浏览器登录返现https网页,发现非官方的https网页无法打开 网址:https://192.168.10.236:31001 2.原…...
MIPS指令集摘要
目录 MIPS指令R I J三种格式 MIPS五种寻址方式 立即数寻址 寄存器寻址 基址寻址 PC相对寻址 伪直接寻址 WinMIPS64汇编指令 助记 从内存中加载数据 lb lbu lh lhu lw lwu ld l.d lui 存储数据到内存 sb sh sw sd s.d 算术运算 daddi daddui dadd…...
数据可视化素材分享 | 数十图表、无数模板
很多人在后台求分享报表、源代码,其实何必这么麻烦,在奥威BI数据可视化平台上点击即可获得大量的可视化素材,如数十种可视化图表,适用于不同分析场景;又如大量不同主题的BI数据可视化报表模板,套用后替换数…...
Hadoop3教程(三十二):(生产调优篇)NameNode故障恢复与集群的安全模式
文章目录 (159)NameNode故障处理(160)集群安全模式&磁盘修复集群安全模式磁盘修复等待安全模式 参考文献 (159)NameNode故障处理 如果NameNode进程挂了并且存储的数据也丢失了,如何恢复Nam…...
uniapp下载附件保存到手机(文件、图片)ios兼容
downloadFile(file),其中file为下载的文件地址uni.downloadFile图片使用uni.saveImageToPhotosAlbum【安卓、ios都合适】文件使用uni.openDocument【安卓图片也可以用这个,ios会失败】 // 下载文件 export function downloadFile(file) {let acceptArr …...
【Edabit 算法 ★☆☆☆☆☆】 Basketball Points
【Edabit 算法 ★☆☆☆☆☆】 Basketball Points language_fundamentals math numbers Instructions You are counting points for a basketball game, given the amount of 2-pointers scored and 3-pointers scored, find the final points for the team and return that …...
Web攻防04_MySQL注入_盲注
文章目录 MYSQL-SQL操作-增删改查盲注概念盲注分类盲注语句参考&更多盲注语句/函数 注入条件-数据回显&错误处理PHP开发项目-注入相关条件:基于延时:基于布尔:基于报错: CMS案例-插入报错&删除延时-PHP&MYSQL1、x…...
Flask自定义装饰和g的使用
1. 在commons.py文件中新增一个装饰器类: 注:一定要加入wraps进行装饰否则,装饰器在给多个函数进行装饰时会报错 from functools import wraps from flask import session, current_app, g# 定义登陆装饰器,封装用户的登陆数据 def user_log…...
【汇编】汇编语言基础知识(学习笔记)
一、汇编语言概述 汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件奈统的结构,才能有效的应用汇编语言对其编程。 二、汇编语言的产生 机器语言:机器语言是机器指令的集合 汇编语言的主体是汇编指令 汇编指令和机器指令的差别在…...
前端 | FormData 用法详解
前端 | FormData 用法详解 介绍 FormData 是 Ajax2.0 对象用以将数据编译成键值对,以便于 XMLHttpRequest 来发送数据。XMLHttpRequest Level 2 提供的一个接口对象,可以使用该对象来模拟和处理表单并方便的进行文件上传操作 如果表单属性设为 mu…...
linux常见命令-文件目录类
9.4 文件目录类 (1)pwd 指令:显示当前工作目录的绝对路径 (2)Is指令:查看当前目录的所有内容信息 基本语法: ls [选项,可选多个] [目录或是文件] 常用选项:-a:显示当前目录所有的文件和目录,包括隐藏的…...
3步玩转AI视频神器:让短视频创作效率提升10倍
3步玩转AI视频神器:让短视频创作效率提升10倍 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,GPTSoVITS,支持云语音&…...
思源宋体TTF:7种字重免费商用字体如何让中文设计变得如此简单
思源宋体TTF:7种字重免费商用字体如何让中文设计变得如此简单 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是否曾经为了找到一个既好看又免费的中文字体而熬夜搜索&am…...
VUE--项目问题
1. useRouter():拿到路由器,可以查看路由以及使用路由器的方法们2. <el-menu-item v-for"item in router.options.routes[0].children" :index"item.path">router.options.routes[0].children 这个是路由表里的第一个路…...
手把手教你用VMware Workstation搭建FusionCompute 6.5.1实验环境(附网络避坑指南)
VMware Workstation实战:从零构建FusionCompute 6.5.1实验环境全攻略 在虚拟化技术的学习道路上,能够亲手搭建一套完整的实验环境往往比阅读十篇理论文章更有价值。今天我们将深入探讨如何在个人电脑上,通过VMware Workstation构建华为Fusion…...
【收藏级】2026年大模型风口来袭!程序员/小白转行必看,附热门岗位全解析
2026年,随着AI大模型从“聊天对话”迈入“Agent主动执行”的范式跃迁,叠加国产模型的强势崛起,AI行业迎来新一轮爆发期。对于深耕技术的程序员,或是想要入门AI的小白来说,这不再是“可选”的转型机会,而是“…...
【ArcGIS Pro二次开发】:三调地类面积精准统计与数据清洗实战
1. 三调地类面积统计的业务痛点 做国土调查数据处理的朋友都知道,三调数据最让人头疼的就是地类名称不规范。我去年接手一个省级三调项目时,光是清理"养殖坑塘"这类非标准表述就花了整整两周。不同作业单位提交的数据里,光是坑塘水…...
终极指南:如何一键检测微信单向好友关系
终极指南:如何一键检测微信单向好友关系 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends 你是否曾怀疑…...
Agent工作流卡住了?试试AFlow:用蒙特卡洛树搜索自动帮你重构工作流拓扑
Agent工作流优化新范式:AFlow如何用蒙特卡洛树搜索重构智能体协作拓扑 当你的多智能体系统陷入性能瓶颈时,最棘手的往往不是单个组件的缺陷,而是隐藏在复杂交互中的结构性问题。传统调试方法如同在迷宫中摸索,而AFlow算法带来的蒙…...
SAP批次管理不止于追溯:如何用批次分割、双单位玩转库存与销售分析
SAP批次管理高阶实战:从基础配置到业务赋能的深度解析 引言:重新定义批次管理的价值边界 在化工行业的一次季度复盘会上,某跨国企业的供应链总监指着报表上一组数据问道:"为什么同一批原料在不同包装规格下的周转率差异达到3…...
IIR滤波器设计实战:从Butterworth到参数调优的完整指南
IIR滤波器设计实战:从Butterworth到参数调优的完整指南 在数字信号处理领域,IIR(无限冲激响应)滤波器因其高效的频率选择特性而广受欢迎。与FIR滤波器相比,IIR滤波器能够在相同性能要求下使用更少的计算资源ÿ…...
