zoukankan      html  css  js  c++  java
  • 华为:删固定位置的数

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

    利用数组删除
    import java.util.Scanner;
    public class Main{
        public static void main(String[] args){
            Scanner in = new Scanner(System.in);
            while(in.hasNext()){
                int n = in.nextInt();
                int id = -1;
                if(n<=1){
                    break;
                }
                 
                int[] A = new int[n];
                int flag = 0;// max 3
                int num = n;
                while(num>=1){
                    id++;
                    if(id ==n) id = 0;
                    if(A[id] == 0){
                        flag++;   
                    }
                    if(flag == 3){
                        flag = 0;
                        A[id] = -1;
                        num--;
                    }
                     
                }
                System.out.println(id);
                 
            }
        }
    }
  • 相关阅读:
    Sum Root to Leaf Numbers
    Sum Root to Leaf Numbers
    Sort Colors
    Partition List
    Binary Tree Inorder Traversal
    Binary Tree Postorder Traversal
    Remove Duplicates from Sorted List II
    Remove Duplicates from Sorted List
    Search a 2D Matrix
    leetcode221
  • 原文地址:https://www.cnblogs.com/bbbblog/p/5289192.html
Copyright © 2011-2022 走看看