看大神文章小结——微软等面试10,11

本文探讨了字符串单词顺序翻转的算法实现,并提供了一种通过多次翻转来解决问题的方法。此外,还详细介绍了求解二叉树中相距最远的两个节点之间距离的问题,给出了具体的递归解决方案。

大神 地址 :http://blog.csdn.net/v_JULY_v/article/details/6015165


第 10 题(字符串)
翻转句子中单词的顺序。
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。


读题。一看改变顺序的。做过一些了。 第一反应就是通过多次翻转实现。于是开始写代码

	public String mainMen(String s){
		String[] sa=s.split(" ");
		StringBuffer temp=new StringBuffer();
		for(int i=0;i<sa.length;i++){  // String ss:sa){
			StringBuffer sb=new StringBuffer(sa[i]);
			sb=overturn(sb);
			temp.append(sb);
			temp.append(" ");
		}
		temp=overturn(temp);
		return temp.toString();
	}
	
	public StringBuffer overturn(StringBuffer s){
		for(int i=0;i<(s.length())/2;i++){
			int lastIndex=s.length()-1-i;
		
			char start=s.charAt(i);
			char end=s.charAt(lastIndex);
			char temp=start;
			start=end;
			end=temp;
			s.setCharAt(i, start);
			s.setCharAt(lastIndex, end);
		}
		return s;
	}

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


没思路 没思路。。貌似 这是前面所有题目中卡壳最长的。 一点思路都没有 。先放一下。 过一阵子再来想。 有时候 题目就是这样 卡壳了 再怎么想都没用。 过一会儿 再来想 估计会有办法。


想了一下。 貌似还是没有什么好的办法。 走笨方法 循环递归? 先写代码试试吧。需要注意的是。 这个只要求 距离。那么 很明显 在循环计算的时候。 不停的更新最大值。一直到结束就可以了。

首先  最大距离 肯定需要经过一个跟节点。 而经过这个根节点的最大距离肯定在这个跟的两边(可以包含根 即只有一个子节点的情况) 然后 循环遍历所有跟节点。就可以了。考试的话 我就只能提交这样的答案了 代码实现如下。

	public int mainCount(Node node){
		count(node);
		return maxLength;
	}
	
	private void count(Node node){
		int left=0;
		int right=0;
		if(node.getLeft()!=null){
			left=1+getNodeLev(node.getLeft());
			count(node.getLeft());
		}
		if(node.getRight()!=null){
			right=1+getNodeLev(node.getRight());
			count(node.getRight());
		}
		if(maxLength<(left+right)){
			System.out.println("left:"+left+"right:"+right+node.getNum());
			maxLength=left+right;
		}
		
		
	}
	/**获取深度*/
	private int getNodeLev(Node node){
		int lev=0;
		int left=0;
		int right=0;
		if(node.getLeft()!=null){
			left=1+getNodeLev(node.getLeft());
		}
		if(node.getRight()!=null){
			right=1+getNodeLev(node.getRight());
		}
		return Math.max(left, right);
	}

测试了一下 貌似是对的。去看看别人这么想的。貌似 他们的 思想差不多吧。 反正遇到树 就想到递归。。。。。

内容概要:本文详细介绍了一个基于秃鹰搜索算法(BES)优化最小二乘支持向量机(LSSVM)的多特征分类预测项目,涵盖从理论原理、模型架构、代码实现到GUI界面设计的完整流程。项目通过BES算法自动优化LSSVM的关键参数(如正则化参数C和核函数参数gamma),提升模型在高维、多特征数据下的分类精度与泛化能力。结合特征工程、交叉验证、数据增强等技术,有效应对过拟合与参数调优难题,并通过混淆矩阵、ROC曲线、t-SNE可视化等多种方式实现结果解释与模型评估。项目还提供了完整的目录结构、模块化代码封装、并行计算支持及可扩展的部署架构,适用于金融风控、医疗诊断、工业故障检测等多个领域。; 适合人群:具备一定Python编程基础和机器学习知识的研发人员、数据科学家及工程技术人员,尤其适合从事智能算法开发、模型优化与实际工程落地的相关从业者;工作年限建议在1-5年之间。; 使用场景及目标:①在高维多特征数据场景中实现高精度分类预测;②解决传统LSSVM人工调参困难的问题,实现参数自动寻优;③构建可解释、可可视化、可部署的智能分类系统,支持金融、医疗、工业等领域的智能决策应用;④学习如何将智能优化算法(如BES)与经典机器学习模型(如LSSVM)融合并实现端到端项目开发。; 阅读建议:建议读者结合文中提供的完整代码进行实践操作,重点关注BES优化算法的实现逻辑、LSSVM的训练流程以及GUI界面的集成方式。在学习过程中,可尝试更换数据集、调整参数范围或引入其他优化算法进行对比实验,以深入理解模型性能变化机制。同时,建议关注项目部署与可扩展性设计,为后续工程化应用打下基础。
【源码免费下载链接】:https://renmaiwang.cn/s/yzxo9 在本项目中,我们深入研究了利用WPF构建登录界面的技术,并探讨了如何实现与 WinForms 主窗口之间的平滑切换效果。作为.NET Framework的一部分,WPF提供了丰富的用户界面设计功能;而 WinForm 是一个成熟的UI框架,在两者协同工作时可以充分发挥各自优势。为了创建登录页面,我们需要使用XAML来定义布局和控件,包括文本框、密码输入框以及按钮等基本元素。例如,在实现简单的登录界面时,我们可以将用户名、密码字段分别放置在两个文本框中,并通过一个按钮触发登录操作。具体的代码实现可以通过以下段落展示:```xml[此处应包含XAML代码片段]``` 在后台脚本部分,我们需要为按钮的点击事件编写逻辑来验证用户输入的安全性。例如,在上述示例中,我们假设已经存在名为 WinFormApp 的 WinForms 主界面类,并通过如下代码实现了功能:```csharp[此处应包含C#代码片段]``` 值得注意的是,WPF窗口可以与 WinForms 窗口实现交互切换,这种设计不仅提升了用户体验,还提供了良好的扩展性和可维护性。在实际开发过程中,建议将用户凭证存储在安全的位置,并采用数据绑定和 MVVM 模式来增强代码的可管理性。此外,在项目中我们巧妙地整合了两种UI设计框架,使得最终应用既具备美观界面又展现出强大功能。通过这种混合开发模式,我们可以快速构建出满足多种需求的应用程序。 为方便学习者深入研究,压缩包文件 TEST_WPF 登录打开 WinForm 主界面 中提供了一个完整的WPF与WinForm混合开发案例,其中详细展示了项目的实现过程和相关技术细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值