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

面试算法

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

import java.util.*;

public class AlgorithmHandler
{
	// 几个面试题;
	public static void main(String[] argus)
	{
		
		// 阳光保险快速排序:先找到某个元素的正确位置,然后前后实现二分法,两边分别如此反复;	
		int[] nArr = {100,14,36,3,8,23,10,5,-8,-1};
		//quickSort(nArr,0,nArr.length-1);
		//System.out.println(Arrays.toString(nArr));			
		

		// 人人贷的面试两个算法;
		// 1、三位数倒数输出;
//			swapInt(12345);		
			
		// 2、n=0,0;n=1,1;f(n)=f(n-1)+f(n-2);
		System.out.println(getFn(8));

	}	

	public static void quickSort(int[] nArr,int i,int j)
	{
		
		if(i>=j) return;
		// 快速排序:先找到某个元素的正确位置,然后前后实现二分法,两边分别如此反复;
		int nVal = nArr[i]; // 随便指定一个元素,找到她的位置;
		int low = i,high = j;
		while(low<high)
		{
			while(low<high && nArr[high]>nVal)
			{
				high--;
			}
			nArr[low] = nArr[high];
			while(low < high && nArr[low]<nVal)
			{
				low++;
			}
			nArr[high] = nArr[low];							
		}
		nArr[low] = nVal;
		
		quickSort(nArr,i,low-1);
		quickSort(nArr,low+1,j);
		
	
	}

	// 三位数倒数输出;
	public static void swapInt(int i)
	{
/*		while(i>0)
		{
			 System.out.println(i%10);
			i=i/10;
		}		
*/
		int revNum = 0;
        // 关键也就是这三行的代码
                while(i != 0){
                   revNum =  i % 10 + revNum * 10;
                   i /= 10;
                }
		System.out.println(revNum);
	}
	
	// // 2、n=0,0;n=1,1;f(n)=f(n-1)+f(n-2);这个好像是斐波拉契数列;
	// 关键是要理解题目,就是返回求f(n);
	public static int getFn(int n)
	{
		int fn = 0;
		if(n==0||n==1)
			fn = n;
		else
		{
			fn = getFn(n-1) + getFn(n-2);
		}	
		return fn;
	}	



}

 

转载于:https://my.oschina.net/newchaos/blog/1574700

相关文章:

  • 让“云”无处不在-Citrix Xenserver之三 license server
  • javascript 中的变量提升与函数提升
  • Linux shell笔记
  • Linux文件查找命令find,xargs详述【转】
  • 论调用约定
  • testngpp - next generation unit test framework for c/c++
  • WizKnowledge的插入代码插件
  • linux 下的磁盘配额
  • 基于centos4.4的mg手工下载RPM包安装顺序记录
  • 前端日刊君来也
  • JAVA 空间分配担保
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • CSS技术
  • input 全选和取消全选
  • 从中国男足看项目管理
  • Google 是如何开发 Web 框架的
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 10个最佳ES6特性 ES7与ES8的特性
  • Angularjs之国际化
  • classpath对获取配置文件的影响
  • dva中组件的懒加载
  • es的写入过程
  • IndexedDB
  • iOS | NSProxy
  • JavaScript对象详解
  • Java比较器对数组,集合排序
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • oldjun 检测网站的经验
  • Quartz初级教程
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • ubuntu 下nginx安装 并支持https协议
  • Unix命令
  • Vue 重置组件到初始状态
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 安卓应用性能调试和优化经验分享
  • 初识 webpack
  • 从零开始学习部署
  • 容器服务kubernetes弹性伸缩高级用法
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • #HarmonyOS:基础语法
  • $.ajax()参数及用法
  • (02)vite环境变量配置
  • (4)STL算法之比较
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (过滤器)Filter和(监听器)listener
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (转)关于多人操作数据的处理策略
  • ./configure,make,make install的作用
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .net分布式压力测试工具(Beetle.DT)
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)