`

面试编程题收集

阅读更多

1:有N个人围成一圈,第一个人从1开始报数,报到M的人出列,求最后一个出列的人, 约瑟夫环问题。

	public void testTest() {
		String[] people = { "1", "2", "3", "4", "5" };
		int M = 10;
		int length;
		int m;
		while ((length = people.length) != 1) {
			// 比方说有5个人,数到9,就要转一轮然后继续
			if (M > length) {
				// 如果是整除,最后一位被出局
				m = M % length == 0 ? length : M % length;
			} else {// 正常情况
				m = M;
			}

			String[] temp = new String[length - 1];
			// 把m之后的人放到前面,因为m之后的重新开始从1开始,
			// m-1这要考虑数组是从0开始的,而数数是从1开始的,然后数据的拷贝是从m开始的
			// 比方说5个人,数到4出局,第5个人开始为1,就数组而言是标记为4开始为1,拷贝的长度为1个
			System.arraycopy(people, m, temp, 0, length - m);
			// 比方说5个人,4出局,第5个排到第一位,然后依次是原先的1,2,3
			System.arraycopy(people, 0, temp, length - m, m - 1);
			// 重新排序,重新开始
			people = temp;

		}
		System.out.println(people[0]);
	}

 最简单但是最难懂的方法:

f(1,m)=0
f(n,m)=(f(n-1,m)+m)%n

public int find(int n, int m)
	{
		int r = 0;
		for (int i = 2; i <= n; i++) {
			r = (r + m) % i;
		}
		return r + 1;
	}

 

分享到:
评论

相关推荐

    java常见的面试编程题

    在Java面试中,编程题是评估候选人技术能力的重要环节。本压缩包文件包含了一系列常见的Java编程题目,旨在帮助学习者巩固基础,提高解决问题的能力。 1. **冒泡排序**:冒泡排序是最基础的排序算法之一,通过不断...

    Java面试题、JVM面试题、多线程面试题、并发编程、设计模式面试题

    收集汇总各行业笔试or编程题解题思路 技术类: 包括 Java 集合、JVM、多线程、并发编程、设计模式、SpringBoot、SpringCloud、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL...

    IT公司笔试\linux c网络网络编程面试题收集

    Linux C 网络编程面试题收集 本文总结了 Linux C 网络编程面试题,涵盖了基础知识、网络编程、路由等方面的知识点,旨在帮助读者更好地理解和掌握相关知识。 一、基础知识 1. 对于程序 `func(char *str){printf(...

    Java面试代码与编程题

    Java面试是评估程序员技术能力的重要环节,而Java面试代码与编程题则是衡量候选人对语言掌握程度、解决问题能力和逻辑思维的关键标准。以下是一些基于Java面试的常见知识点,这些知识点不仅适用于面试,也是日常开发...

    JAVA面试编程题编程资料Java面试常问题目编程资料

    ### JAVA面试编程题知识点详解 #### 一、String与StringBuilder、StringBuffer的区别 - **String**: 不可变的字符序列,适用于操作少量的数据。当字符串的内容不再改变时使用String,这样可以利用其不可变性带来的...

    linux c网络网络编程面试题收集.doc

    linux c网络网络编程面试题收集.doc

    BIO,NIO,AIO,Netty面试题 35道.pdfJava并发编程最全面试题 123道.pdfJava并发编程面试题

    Java并发编程面试题 75题.pdf JAVA核心面试知识点整理.pdf Java垃圾收集必备手册.pdf Java虚拟机(JVM)面试题 51道.pdf SpringBoot面试题 30道.pdf Spring面试题(含答案).pdf 多线程面试59题(含答案).pdf 面试...

    Java经典编程题汇总

    Java作为一门广泛使用的编程语言,其经典编程题的掌握对于开发者来说至关重要,无论是为了日常工作中的问题解决,还是准备面试,都是提升自身技能的有效途径。这个压缩包“Java经典编程题汇总”显然是一份宝贵的资源...

    华为面试题华为面试题华为面试题华为面试题华为面试题

    Java作为一门广泛应用的编程语言,其面试题涵盖了众多领域,包括基础语法、数据结构与算法、多线程、网络编程、集合框架、异常处理、设计模式等。以下将针对这些重要知识点进行详尽的阐述。 1. **基础语法**:Java...

    Java编程题全集及面试题合集

    Java编程题全集及面试题合集是一份涵盖了大量Java编程练习题和面试问题的资源,旨在帮助开发者提升技能和准备求职面试。这份资料包括了"JAVA编程题全集(100题及答案).doc"文档和"Java面试题以及答案.pdf",两者都...

    2023java八股文高频面试题

    本资源收集了大量的Java面试题,旨在帮助读者熟悉Java编程语言以及相关的编程技术和知识点,从而在面试中更好地展现自己的能力和潜力。本资源主要包括Java基础知识、Java集合、多线程、IO操作、网络编程、数据库等...

    java常用面试题集合.rar

    通过这个面试题集合,你可以系统地复习和深化这些关键知识点,提高你的面试表现和实际编程能力。同时,对于面试中可能出现的问题,如项目经验、问题解决能力、团队合作等软性技能,也要进行充分准备。只有全面准备,...

    java面试题收集集锦

    Java面试题集锦涵盖了广泛的Java基础知识,JSP与Servlet技术,J2EE相关知识以及其他一些IT领域的要点。以下是对这些知识点的详细说明: 1. **Java基础** - Java有八种基本数据类型:byte, short, int, long, float...

    java面试题收集(西安面试题,面试指导,sql面试题)

    Java面试题是每个Java开发者在求职过程中必须面对的挑战,尤其在西安这样的技术密集型城市,竞争尤为激烈。本资料集包含了丰富的Java面试题、西安地区常见面试问题以及SQL相关题目,旨在帮助求职者全面准备,顺利...

    java软件工程师面试题

    代码与编程题.doc 华为Java笔试题.txt 单元测试、集成测试、系统测试、验收测试、回归 某公司java笔试题.(超难).txt 白盒测试.txt 软件开发工程师试题---答案.doc 软件测试.doc 软件测试面试题.txt 黑盒测试、白盒...

    面试题面试题面试题面试题面试题

    作者拥有丰富的编程和面试经验,通过深入研究和实践,将多年心得融入专栏,旨在帮助读者提升技术水平,顺利通过面试,找到满意的工作。通过学习这个专栏,你可以收获: - 对Java技术栈的全面理解 - 掌握主流企业...

    面试题 面试题 面试题

    这可能包括编程题、系统设计题、算法题以及相关的软技能问题。对于准备IT行业的求职者来说,这些题目可以帮助他们了解和准备可能会遇到的挑战。 描述中的"名企面试真题"进一步确认了这些问题是来自知名企业的,这...

    .net面试题.net面试题.net面试题.net面试题(经典)

    .NET面试题是评估应聘者对.NET框架理解和应用能力的重要方式,涵盖了从基础概念到高级特性的广泛知识领域。以下是一些可能出现在.NET面试中的关键知识点: 1. **.NET框架基础**:理解.NET Framework的基本结构,...

Global site tag (gtag.js) - Google Analytics