当前位置: 首页 > news >正文

算法题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

一、四向链表&#xff0c;输入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 是一种强大的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它使用 SQL&#xff08;Structured Query Language&#xff09;来管理和操作数据。以下是 MySQL 数据库的基础 SQL 语法&#xff0c;包括创建数据库、创建表、插入、查询、更新和删除数据等基…...

阿里面试(持续更新)

一面&#xff1a; 1 HashMap 实现原理&#xff0c;ConcurrentHashMap 实现原理 HashMap和ConcurrentHashMap都是存储键值对的数据结构&#xff0c;不同的是HashMap是线程不安全的&#xff0c;ConcurrentHashMap是线程安全的&#xff0c;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. 查询课程接口 思路&#xff1a; 典型的分页查询 按需查询 模糊查询的查询 controller&#xff1a; ApiOperation(value "课程列表", notes "课程…...

【OpenCV概念】 11— 对象检测

一、说明 这都是关于物体识别的。物体识别是指通过计算机视觉技术&#xff0c;自动识别图像或视频中的物体及其属性和特征&#xff0c;是人工智能领域的一个分支。物体识别可应用于多个领域&#xff0c;包括工业自动化、智能家居、医疗、安防等。请随时阅读这篇文章&#xff1a…...

TensorRT学习笔记--常用卷积、激活、池化和FC层算子API

目录 1--Tensor算子API 1-1--卷积算子 1-2--激活算子 1-3--池化算子 1-4--FC层算子 2--代码实例 3--编译运行 1--Tensor算子API TensorRT提供了卷积层、激活函数和池化层三种最常用算子的API&#xff1a; // 创建一个空的网络 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安装完毕后&#xff0c;通过google浏览器登录返现https网页&#xff0c;发现非官方的https网页无法打开 网址&#xff1a;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…...

数据可视化素材分享 | 数十图表、无数模板

很多人在后台求分享报表、源代码&#xff0c;其实何必这么麻烦&#xff0c;在奥威BI数据可视化平台上点击即可获得大量的可视化素材&#xff0c;如数十种可视化图表&#xff0c;适用于不同分析场景&#xff1b;又如大量不同主题的BI数据可视化报表模板&#xff0c;套用后替换数…...

Hadoop3教程(三十二):(生产调优篇)NameNode故障恢复与集群的安全模式

文章目录 &#xff08;159&#xff09;NameNode故障处理&#xff08;160&#xff09;集群安全模式&磁盘修复集群安全模式磁盘修复等待安全模式 参考文献 &#xff08;159&#xff09;NameNode故障处理 如果NameNode进程挂了并且存储的数据也丢失了&#xff0c;如何恢复Nam…...

uniapp下载附件保存到手机(文件、图片)ios兼容

downloadFile(file)&#xff0c;其中file为下载的文件地址uni.downloadFile图片使用uni.saveImageToPhotosAlbum【安卓、ios都合适】文件使用uni.openDocument【安卓图片也可以用这个&#xff0c;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开发项目-注入相关条件&#xff1a;基于延时&#xff1a;基于布尔&#xff1a;基于报错&#xff1a; CMS案例-插入报错&删除延时-PHP&MYSQL1、x…...

Flask自定义装饰和g的使用

1. 在commons.py文件中新增一个装饰器类: 注&#xff1a;一定要加入wraps进行装饰否则&#xff0c;装饰器在给多个函数进行装饰时会报错 from functools import wraps from flask import session, current_app, g# 定义登陆装饰器&#xff0c;封装用户的登陆数据 def user_log…...

【汇编】汇编语言基础知识(学习笔记)

一、汇编语言概述 汇编语言是直接在硬件之上工作的编程语言&#xff0c;首先要了解硬件奈统的结构&#xff0c;才能有效的应用汇编语言对其编程。 二、汇编语言的产生 机器语言&#xff1a;机器语言是机器指令的集合 汇编语言的主体是汇编指令 汇编指令和机器指令的差别在…...

前端 | FormData 用法详解

前端 | FormData 用法详解 介绍 ​FormData 是 Ajax2.0 对象用以将数据编译成键值对&#xff0c;以便于 XMLHttpRequest 来发送数据。XMLHttpRequest Level 2 提供的一个接口对象&#xff0c;可以使用该对象来模拟和处理表单并方便的进行文件上传操作 ​ 如果表单属性设为 mu…...

linux常见命令-文件目录类

9.4 文件目录类 &#xff08;1&#xff09;pwd 指令:显示当前工作目录的绝对路径 &#xff08;2&#xff09;Is指令:查看当前目录的所有内容信息 基本语法&#xff1a; ls [选项,可选多个] [目录或是文件] 常用选项:-a:显示当前目录所有的文件和目录&#xff0c;包括隐藏的…...

从产品抽检到网站点击率:二项分布近似在实际业务中的5个应用场景与Python实现

二项分布近似在业务决策中的实战指南&#xff1a;5个场景与Python实现 当产品经理需要评估新功能上线后的用户转化率&#xff0c;或是数据分析师要预测广告点击量的波动范围时&#xff0c;二项分布及其近似方法往往能成为决策工具箱里的秘密武器。不同于教科书中的理论推导&…...

SAP ABAP 深度剖析:COMMIT WORK 与 ROLLBACK WORK 的异步世界与同步抉择

1. 异步与同步的数据库提交机制 在SAP ABAP开发中&#xff0c;COMMIT WORK和ROLLBACK WORK就像数据库操作的"确认键"和"撤销键"。但很多人不知道的是&#xff0c;标准的COMMIT WORK实际上是个"慢性子"——它采用的是异步更新机制。这就好比你在电…...

NPK文件深度解析:高效提取网易游戏资源的专业工具指南

NPK文件深度解析&#xff1a;高效提取网易游戏资源的专业工具指南 【免费下载链接】unnpk 解包网易游戏NeoX引擎NPK文件&#xff0c;如阴阳师、魔法禁书目录。 项目地址: https://gitcode.com/gh_mirrors/un/unnpk 在游戏开发领域&#xff0c;资源文件的打包与加密是保护…...

AT32F413 PWM调光避坑指南:TMR3_CH2重映射到PB5的配置细节与常见问题排查

AT32F413 PWM调光避坑指南&#xff1a;TMR3_CH2重映射到PB5的配置细节与常见问题排查 当你在AT32F413上尝试通过TMR3_CH2输出PWM信号到PB5引脚时&#xff0c;可能会遇到各种"玄学"问题&#xff1a;明明代码看起来没问题&#xff0c;但示波器上就是抓不到波形&#xf…...

从ARM工程师视角看ZYNQ:我的第一个AX7020项目如何打通PS与PL?

从ARM工程师视角看ZYNQ&#xff1a;我的第一个AX7020项目如何打通PS与PL&#xff1f; 作为一名长期深耕ARM架构的嵌入式开发者&#xff0c;当我第一次拿到AX7020开发板时&#xff0c;那种既熟悉又陌生的感觉至今记忆犹新。熟悉的Cortex-A9处理器核与陌生的FPGA可编程逻辑单元共…...

用Python复现SRM隐写分析:从残差计算到34671维特征提取的保姆级教程

用Python复现SRM隐写分析&#xff1a;从残差计算到34671维特征提取的保姆级教程 在数字图像安全领域&#xff0c;SRM&#xff08;Spatial Rich Model&#xff09;作为空域富模型隐写分析的黄金标准&#xff0c;其高达34671维的特征向量构建过程常令研究者望而生畏。本文将用Pyt…...

分布式事务解决方案:Saga/TCC/消息队列——面试必问的分布式事务,你真的懂吗?

一、问题现场还原 那是一个双11大促的日子&#xff0c;小王所在的电商公司系统架构是这样的&#xff1a; 用户下单↓ 订单服务 → 扣减库存 → 支付服务 → 发货 → 增加积分↓ ↓ ↓ ↓ ↓ 订单库 库存库 支付库 物流库 …...

HarmonyOS 6.0 HDS 深度实战:悬浮页签与沉浸光感架构解析(API 23+)

随着 HarmonyOS 6.0&#xff08;API 23&#xff09;的正式发布&#xff0c;HDS&#xff08;HarmonyOS Design System&#xff09;设计系统迎来了质的飞跃。悬浮页签&#xff08;Floating Tabs&#xff09;与沉浸光感&#xff08;Material Component&#xff09;作为构建“空间化…...

保姆级教程:在Ubuntu 18.04上为ORB-SLAM2添加彩色点云地图(含PCL库避坑指南)

在Ubuntu 18.04上实现ORB-SLAM2彩色点云地图的全流程指南 当第一次看到ORB-SLAM2生成的稀疏特征点时&#xff0c;我意识到视觉SLAM的潜力远不止于此。直到成功运行彩色点云建图版本&#xff0c;那种从二维图像到三维稠密重建的震撼感&#xff0c;才真正让我理解了SLAM技术的魅力…...

从 CMS 到 ZGC,JVM 是如何将停顿时间压缩到 1 毫秒的?

要理解 GC 的演进&#xff0c;我们打个极度通俗的比方&#xff1a;JVM 的堆内存就是一家正在营业的“疯狂大餐厅”&#xff0c;里面挤满了客人&#xff08;活着的对象&#xff09;&#xff0c;同时也满地都是别人吃剩的骨头和纸巾&#xff08;死掉的垃圾对象&#xff09;。 垃圾…...