微软100题-天天做-第11题

Java项目实战之天天酷跑(内附视频讲义) 源码和视频讲义在下方资料中感兴趣的小伙伴扫码免费领取 首先,写一个需求文档: 一、项目名称:《天天酷跑》(RunDay) 二、功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避 障碍物和吃金币,玩家躲避的障碍物越多跑酷距离越远,玩家吃的金币越多,得分越高。 三、功能模块: 1、登录界面 用户名(输入框,明文) 密码(输入框,密文) 登录、取消按钮 2、菜单选择界面 开始游戏按钮(图片按钮) 帮助按钮 退出按钮 3、缓冲加载界面 自动加载进度条,加载完毕之后. 阅读详情

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967

课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。

腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518

第二个视频发布  https://edu.youkuaiyun.com/course/detail/27109

腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518

介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。

第三个视频发布:https://edu.youkuaiyun.com/course/detail/27574

详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件
————————————————------------------------------------------------------------------------------------------------------------------

第11题(树)
求二叉树中节点的最大距离...

如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,
我们姑且定义"距离"为两节点之间边的个数。
写一个程序,
求一棵二叉树中相距最远的两个节点之间的距离。

 

package com.microsoft;

import java.util.Random;

public class MaxDistance {
	private Node root;
	private Node lineRoot;

	public MaxDistance(int[] data) {
		for (int i = 0; i < data.length; i++) {
			Node node = new Node();
			node.value = data[i];
			node.weight = 0;
			if (root == null) {
				root = node;
			} else {
				insertNode(root, node);
			}
		}

	}
	
	private void computeRoot(){
		int maxWeight=0;
		if(root.left!=null&&root.right!=null){
			maxWeight=root.left.weight+root.right.weight+1;
		}else if(root.left!=null){
			maxWeight=root.left.weight+1;
		}else if(root.right!=null){
			maxWeight=root.right.weight+1;
		}
		lineRoot=root;
		computeRoot(root,maxWeight);
	}
	private void computeRoot(Node node,int weight){
		int maxWeight=0;
		if(node.left!=null&&node.right!=null){
			maxWeight=node.left.weight+node.right.weight+1;
		}else if(node.left!=null){
			maxWeight=node.left.weight+1;
		}else if(node.right!=null){
			maxWeight=node.right.weight+1;
		}
		if(maxWeight>weight){
			weight=maxWeight;
			lineRoot=node;
		}
		if(node.left!=null){
			computeRoot(node.left,weight);
		}
		if(node.right!=null){
			computeRoot(node.right,weight);
		}
	}
	public void getDistance(){
		computeRoot();
		System.out.println(lineRoot.value);
		lineRoot.corss=true;
		if(lineRoot.left!=null&&lineRoot.right!=null){
			lineRoot.left.corss=true;
			lineRoot.right.corss=true;
			markNode(lineRoot.left);
			markNode(lineRoot.right);
			
		}else if(lineRoot.left!=null){
			lineRoot.left.corss=true;
			markNode(lineRoot.left);
		}else if(lineRoot.right!=null){
			lineRoot.right.corss=true;
			markNode(lineRoot.right);
		}
		printMaxDisLeftNode(lineRoot.left);
		System.out.print(lineRoot.value+"=>");
		printMaxDisRightNode(lineRoot.right);
		System.out.println();
		
	}
	
	private void printMaxDisLeftNode(Node node){
		if(node==null){
			return;
		}
		if(node.left!=null&&node.left.corss){
			printMaxDisLeftNode(node.left);
		}else if(node.right!=null&&node.right.corss){
			printMaxDisLeftNode(node.right);
		}
		System.out.print(node.value+"=>");
	}
	
	private void printMaxDisRightNode(Node node){
		if(node==null){
			return ;
		}
		System.out.print(node.value+"=>");
		if(node.left!=null&&node.left.corss){
			printMaxDisRightNode(node.left);
		}else if(node.right!=null&&node.right.corss){
			printMaxDisRightNode(node.right);
		}
	}
	
	private void markNode(Node node){
		if(node==null){
			return ;
		}
		if(node.left!=null&&node.right!=null){
			if(node.left.weight>node.right.weight){
				node.left.corss=true;
				markNode(node.left);
			}else{
				node.right.corss=true;
				markNode(node.right);
			}
		}else if(node.left!=null){
			node.left.corss=true;
			markNode(node.left);
		}else if(node.right!=null){
			node.right.corss=true;
			markNode(node.right);
		}
	}

	private void insertNode(Node parent, Node node) {
		int random = new Random().nextInt(2);
		if (parent==root||random == 1) {
			if (parent.left != null) {
				insertNode(parent.left, node);
			} else {
				parent.left = node;
				node.parent = parent;
				Node n = node;
				while (n != null) {
					if (n.left != null && n.right != null) {
						n.weight = Math.max(n.left.weight, n.right.weight) + 1;
					} else if (n.left != null) {
						n.weight = n.left.weight + 1;
					} else if (n.right != null) {
						n.weight = n.right.weight + 1;
					}
					n = n.parent;
				}
			}
		} else {
			if (parent.right != null) {
				insertNode(parent.right, node);
			} else {
				parent.right = node;
				node.parent = parent;
				Node n = node;
				while (n != null) {
					if (n.left != null && n.right != null) {
						n.weight = Math.max(n.left.weight, n.right.weight) + 1;
					} else if (n.left != null) {
						n.weight = n.left.weight + 1;
					} else if (n.right != null) {
						n.weight = n.right.weight + 1;
					}
					n = n.parent;
				}
			}
		}
	}

	public void print() {
		Node h = this.root;
		this.print(0, h);
	}

	private void print(int level, Node node) {
		if(node==null){
			return;
		}
		for (int i = 0; i < level; i++) {
			System.out.format(" ");
		}
		System.out.format("|");
		for (int i = 0; i < level; i++) {
			System.out.format("-");
		}

		System.out.format("%d%s%s%n", node.value, ","+ node.weight,node.corss?"M":"");
		print(level + 1, node.left);
		print(level+1,node.right);
		
	}

	private class Node {
		private Node parent;
		private Node left;
		private Node right;
		private int value;
		private boolean corss;
		private int weight;
	}

	public static void main(String[] args) {
		int[] data = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
				15, 16, 17, 18, 19, 20,21,22,23,24,25,26,27,28,29,30 };
		MaxDistance tree = new MaxDistance(data);
		tree.getDistance();
		tree.print();
		
	}

}

 

 

 

 

 

基于ADMM的TV正则化最小化稀疏实现图像重建 ADMM算法是一种求解带有约束条件的优化问题的有效方法,它可以将原问题分解成两个子问题,然后交替求解这两个子问题,直到收敛。为了解决这些问题,研究人员提出了许多图像重建方法,其中一种常用的方法是基于正则化的方法。在图像重建中,TV正则化是一种比较常用的正则化方法,可以有效地降低图像的噪声,并保持图像细节特征。通过本文的介绍和源代码的演示,我们可以看出基于ADMM的TV正则化最小化稀疏实现图像重建的方法是一种简单、高效、有效的图像重建方法,能够在一定程度上提高图像质量,对于实际应用具有一定的参考意义。 阅读详情

相关推荐

AI 技术新手入门与实战指南

仅仅能对话还不够,实际应用中,我们往往需要让 AI 处理特定的业务数据。比如,从日志文件中提取错误码,或者将非结构化的用户反馈整理成 JSON 格式。这时候,自定义输入和严格的结果验证就显得尤为重要。假设我们需要让 AI 分析一段服务器日志,并只返回错误的级别和简述。请分析以下日志片段,提取所有 ERROR 级别的信息。要求输出格式为 JSON 列表,包含 'timestamp' 和 'message' 两个字段。不要输出任何多余的解释文字。日志内容: {

2600_94936330的博客 2681

微软100题-天天做-第14题

第14题(数组): 题目:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11 这道题貌似有难度。 package com.microsoft; public cl

mark's technic world 941

LDO稳定性分析

根据补偿方式和拓扑结构的不同,三个极点之间的相互位置有可能发生变化,但 是 LDO 通常采用较大的输出电容 Cout,以及较大的调整管也会导致较大的 Cpar, 所以 p1、p2 通常位于较低的频率处,而 p3 和 z1 则由于 Resr较小会位于较高的频 率处。不过幸运的是,对于较大的 Cout来说,只要选择合适的 Resr,就可以将左半平面零点 Z1 的频率降低,甚至使 Z1 进入单位增益带宽内,左半平面零点的进入将对相位有所改善,这不仅可以消除振荡的风险,还可以在单位增益频率处得到较好的相位裕度。

模拟芯片设计 1595

微软100题-天天做-第35题

35.(矩阵) 求一个矩阵中最大的二维矩阵(元素和最大).如: 1 2 0 3 4 2 3 4 5 1 1 1 5 3 0 中最大的是: 4 5 5 3 要求:(1)写出算法;(2)分析时间复杂度;(3)用C写出关键代码

mark's technic world 734

5分钟搞定PaddleOCR PP-OCRv5环境搭建:从安装到第一个识别Demo

本文提供了一份详细的PaddleOCR PP-OCRv5环境搭建与快速入门指南。通过清晰的步骤,指导读者在5分钟内完成从创建Python虚拟环境、安装PaddlePaddle框架和PaddleOCR库,到编写并运行第一个OCR识别Demo的全过程,帮助开发者快速体验最新的PP-OCRv5模型的文字识别能力。

sprite的博客 1271

ESP32-CAM入门教程

ArduinoESP32-CAM下载模块(接上USB就能用,很方便,如果没有买就只有资金用USB-TTL了)如下图两个合在一起如下图。

qq_48778364的博客 3万+

微软100题-天天做-第9题

第9题(树) 判断整数序列是不是二元查找树的后序遍历结果 题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。 如果是返回true,否则返回false。 例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 8 / / 6 10 / / / / 5 7 9 1

mark's technic world 859

C# typeof() 和 GetType()区别

总得来说他们都是为了获取某个实例具体引用的数据类型System.Type。 1、GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,x.GetType(),其中x为变量名,由x实例返回得到一个类型 2、typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称,返回一个类型 3、System.Type.GetType(),有两个重载方法 比如有这样一个变量i: Int32 i = new Int32(); 使用GetType(),i...

Peter的博客 1956

微软100题-天天做-第16题

第16题(树): 题目(微软): 输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。 例如输入 8 / / 6 10 / / / / 5 7 9 11 输出8 6 10 5 7 9 11。

mark's technic world 829

贝叶斯神经网络(Bayesian Neural Network)

最近在研究贝叶斯神经网络,一些概念一直搞不清楚,这里整理一下相关内容,方便以后查阅。

梁小憨憨的博客 3659

OpenClaw 在 Docker 容器中的部署实战——零配置启动

本文介绍了OpenClaw在Docker容器中的快速部署方法,对比了本地部署与容器化部署的优势。通过官方镜像和Docker Compose两种方式,5分钟即可完成部署,并详细讲解了配置管理方案(挂载配置文件和环境变量)。文章还提供了飞书集成配置方法,以及生产环境下的日志管理、资源限制、健康检查等优化建议。最后包含常见问题排查指南,帮助开发者快速实现OpenClaw的容器化部署。

刘一说的IT专栏 913

微软100题-天天做-第15题

第15题(树): 题目:输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / / 6 10 // // 5 7 9 11 输出: 8 / / 10 6 // // 11 9 7 5 定义二元查找树的结点为: stru

mark's technic world 710

从 Junior 到 Lead:ABAP 开发者进阶路线图与真实项目练级法

本文拆解了ABAP工程师从初级到高级的成长路径,强调能力提升依赖于可复用经验的积累。对于初级开发者,建议夯实ABAP Dictionary、内表处理和数据库思维三大基础,培养数据流与规则层的结构化思维,并逐步掌握面向对象编程。中级阶段应注重代码可维护性,通过单元测试和Clean ABAP规范提升工程质量。文章指出,ABAP开发者需要学会筛选学习重点,建立知识地图,并重视团队协作中的代码可读性。关键在于将碎片知识整合为可迁移的模型,而非盲目追求新技术。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 179

java实现天天酷跑开发_Java项目实战之天天酷跑

作者:MyHuey来源:blog.youkuaiyun.com/qq_45909299首先,写一个需求文档:一、项目名称:《天天酷跑》(RunDay)二、功能介绍:闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避障碍物和吃金币,玩家躲避的障碍物越多跑酷距离越远,玩家吃的金币越多,得分越高。三、功能模块:1、登录界面用户名(输入框,明文) 密码(输入框,密文) 登录、取消按钮2、菜单...

weixin_28999575的博客 927

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

微软 Win11 被 Linux 社区炮轰:背叛了用户、不要安装

来自快科技:http://33h.co/9ur17微软的Win11系统发布一周时间了,很多人都在忙着升级,也有人因为种种问题选择观望,对微软来说,Win11显然是他们未来几年的重点,但对L...

cainiao_python的博客 372

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

天天酷跑java_利用Java怎么实现一个天天酷跑游戏

利用Java怎么实现一个天天酷跑游戏发布时间:2020-12-15 17:25:03来源:亿速云阅读:102作者:Leah利用Java怎么实现一个天天酷跑游戏?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。首先,写一个需求文档:一、项目名称:《天天酷跑》二、功能介绍:闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家...

weixin_39644021的博客 501

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java项目实战之天天酷跑

来源:blog.youkuaiyun.com/qq_45909299首先,写一个需求文档:一、项目名称:《天天酷跑》(RunDay)二、功能介绍:闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩...

Java团长的博客 4701

Java 项目实战天天酷跑

点击上方Java后端,选择设为星标优质文章,及时送达排版:Java后端;来源:blog.youkuaiyun.com/qq_45909299首先,写一个需求文档:一、项目名称:《天天酷跑》(Ru...

公众号:Java后端 627

天天酷跑php源码_Java实现天天酷跑小游戏完整代码(附源码)

首先,写一个需求文档:一、项目名称:《天天酷跑》(RunDay)二、功能介绍:闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避障碍物和吃金币,玩家躲避的障碍物越多跑酷距离越远,玩家吃的金币越多,得分越高。三、功能模块:1、登录界面用户名(输入框,明文) 密码(输入框,密文) 登录、取消按钮2、菜单选择界面开始游戏按钮(图片按钮) 帮助按钮 退出按钮3、缓冲加载界面自动加...

weixin_39796140的博客 768

微软官宣 Win 11 即将到来,网友:没安卓,升个寂寞啊!

文 | 御坂弟弟出品 | OSC开源社区(ID:oschina2013)之前,Windows 11 正式发布!能跑安卓应用程序,意味着Windows 11将支持Android应用程序,人们...

cainiao_python的博客 246

“宇宙第一IDE”终于上架Microsoft Store!

来源| OSC开源社区(ID:oschina2013)“宇宙第一IDE”——Visual Studio 终于上架 Microsoft Store 了。微软近日宣布,用户可以从 Window...

cainiao_python的博客 181

c++酷跑游戏设计_Java实现天天酷跑了,有点6

来源:blog.youkuaiyun.com/qq_45909299 首先,写一个需求文档:一、项目名称:《天天酷跑》(RunDay)二、功能介绍:闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避障碍物和吃金币,玩家躲避的障碍物越多跑酷距离越远,玩家吃的金币越多,得分越高。三、功...

weixin_35988038的博客 411

王炸!!微软终于对 JDK 下手了…

整理:郑丽媛授权转自公众号:优快云(ID:优快云news)前天美国最高法院刚裁定谷歌在 Android 系统中使用的 Java API 代码合理,第二天微软就发布了 Microsoft...

cainiao_python的博客 341

不敢相信,居然用Java写了个“天天酷跑”!

作者 |MyHuey来源 |https://blog.youkuaiyun.com/qq_45909299首先,写一个需求文档:一、项目名称:《天天酷跑》(RunDay)二、功能介绍:闯关类游...

架构师小秘圈 297
上一篇: 微软100题-天天做-第10题
下一篇: pig分析脚本
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值