删数

4人阅读 评论(0) 收藏 举报
分类:
题目描述有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。输入描述:每组数据为一行一个整数n(小于等于1000),为数组成员数,如果大于1000,则对a[999]进行计算。输出描述:一行输出最后一个被删掉的数的原始下标位置。示例1输入8输出6

约瑟夫问题

import java.util.ArrayList;
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			int n = sc.nextInt();
			ArrayList<Integer> mark = new ArrayList<Integer>();
			if (n < 2) {
				System.out.println(0);
			} else {
				for (int i = 0; i < n; i++) {
					mark.add(i);
				}
				int i = 0 + 2;
				while (mark.size() > 1) {
					mark.remove(i);
					i+=2;
					while(i>mark.size()-1) {
						i=i-mark.size();
					}
				}
			}
			System.out.println(mark.get(0));
		}
	}
}

while循环可以写成这样:

while (mark.size() > 1) {
					i=(i+2)%mark.size();
					mark.remove(i);
				}
更简洁
查看评论

继续贪心:删数问题

上次已经讲过一次贪心了,这次就来个小实战吧,下面看题: **删数问题**已知一个数组,要求从数组中删除n个数,要求剩下的数按顺序排列成的数字最小。例:数组为{1,3,2,4,7,0,5} n = ...
  • restlessssh
  • restlessssh
  • 2016-05-17 23:27:39
  • 1999

C++贪心算法之删数问题

删数问题 题目描述 思路分析 代码实现 #include using namespace std; string n; //定义字符串n int s; ...
  • C20190413
  • C20190413
  • 2017-08-18 13:03:07
  • 563

贪心算法——删数问题

已经很久没有和大家见面了!今天给大家带来的是贪心算法中的一类问题——删数问题。 那么首先我们要了解:贪心算法是什么??? 所谓贪心算法,当然是很贪心的算法。就是鼠目寸光地从局部看全局,首先得到局部...
  • qq_37630072
  • qq_37630072
  • 2017-08-18 14:00:00
  • 601

贪心算法,删数问题

贪心算法,删数问题。你输入一个正整数,再输入要删除的位数,求剩下数按照原来的顺序排列组成的新正整数最小。...
  • qq_30000411
  • qq_30000411
  • 2016-05-11 16:36:44
  • 1427

OJ 删数问题

删数问题 Time Limit: 1000MS Memory limit: 65536K 题目描述  键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个...
  • jinshiyan1995
  • jinshiyan1995
  • 2015-04-16 22:54:40
  • 654

SDUT 贪心算法 删数问题

Problem Description 键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数...
  • qq_35829824
  • qq_35829824
  • 2017-10-19 11:27:09
  • 285

删数问题题解

题目描述 给定一个正整数(位),从中删去n位后,使得剩下的数字组成的新数最小。 输入格式 第一行,要处理的正整数 第二行,一个整数n (n 输出格式 仅一行,组成的最小的新数   样例...
  • wangwei6125
  • wangwei6125
  • 2016-06-01 22:03:05
  • 1766

贪心 删数问题

给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n位正整数a 和正整数k,设计一个算法找出剩下数字组成的新数最小的删数方案。 算法的原理应该是...
  • u013573047
  • u013573047
  • 2014-02-22 09:57:06
  • 846

华为-删数-约瑟夫环问题-不利用额外空间

题目:有一个数组a[N]顺序存放0-N,要求没隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1-...
  • li563868273
  • li563868273
  • 2016-04-17 13:31:40
  • 635

华为2016研发工程师编程题(1)----删数

问题: 有一个数组a[N]顺序存放0-N,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。 以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->...
  • qianqin_2014
  • qianqin_2014
  • 2016-05-03 16:39:01
  • 741
    个人资料
    持之以恒
    等级:
    访问量: 1764
    积分: 778
    排名: 6万+
    博客专栏
    文章存档