微软100题-天天做-第18题
来源:互联网 发布:windows触摸屏无法使用 编辑:程序博客网 时间:2024/05/22 12:30
第18题(数组):
题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,
每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。
当一个数字删除后,从被删除数字的下一个继续删除第m个数字。
求出在这个圆圈中剩下的最后一个数字。
题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,
每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。
当一个数字删除后,从被删除数字的下一个继续删除第m个数字。
求出在这个圆圈中剩下的最后一个数字。
July:我想,这个题目,不少人已经 见识过了。
package com.microsoft;public class CircleDelete {private Node root;public CircleDelete(int n){Node last=null;for(int i=0;i<n;i++){Node node=new Node();node.value=i;if(root==null){root=node;last=node;}else{if(i==n-1){last.next=node;node.next=root;}else{last.next=node;last=node;}}}}public void delete(int m){int n=m;while(n>2){n--;root=root.next;}root.next=root.next.next;root=root.next;if(root.next==root){System.out.println("last node value is:"+root.value);return;}delete(m);}private class Node{private Node next;private int value;}public static void main(String[] args) {CircleDelete circle=new CircleDelete(10);circle.delete(2);}}
0 0
- 微软100题-天天做-第18题
- 微软面试100题-天天做-第5题
- 微软面试100题-天天做-第6题
- 微软100题-天天做-第7题
- 微软100题-天天做-第8题
- 微软100题-天天做-第9题
- 微软100题-天天做-第10题
- 微软100题-天天做-第11题
- 微软100题-天天做-第12题
- 微软100题-天天做-第13题
- 微软100题-天天做-第14题
- 微软100题-天天做-第15题
- 微软100题-天天做-第16题
- 微软100题-天天做-第17题
- 微软100题-天天做-第19题
- 微软100题-天天做-第20题
- 微软100题-天天做-第21题
- 微软100题-天天做-第22题
- Apache上部署Django
- HDU--1040 As Easy As A+B
- 几个浏览器的H5测试
- Spring 基础教程之三:JavaBean生命周期
- C++ 文件
- 微软100题-天天做-第18题
- hdu 1710:Binary Tree Traversals
- HBase集群搭建
- SSH 连接缓慢问题处理
- 模拟MBR的备份、损坏、恢复
- coursera 中计算概论的第五周 B-04作业
- HighCharts之2D圆环图
- android中 包名打开app
- I/O 1.1 Directory