zoukankan      html  css  js  c++  java
  • 约瑟夫环-递归

    package JianZhioffer;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class test62 {
        public static void main(String[] args) {
            int n=5;
            int m=2;
            System.out.println(lastRemaining(n, m));    
        }
      //最后一个元素时候删除得是第0个,假设n-1元素删除第x个,那么n元素删除(m+x)%n
        public static int lastRemaining(int n, int m) {
            return f(n, m);
        }
    
        public static int f(int n, int m) {
            if (n == 1) {
                return 0;
            }
            int x = f(n - 1, m);
            return (m + x) % n;
        }
        //超时
        public static int lastRemaining1(int n, int m) {
            if(n==1){
                return 0;
            }
            if(m==1){
                return n-1;
            }
            ListNode list=new ListNode(0);
            ListNode x=list;
            for(int i=1;i<n;i++){
                list.next=new ListNode(i);
                list=list.next;
            }
            list.next=x;
            ListNode list1=x;
            
            while(list1.next!=list1){
                int l=1;
                int k=1;
                ListNode list2=list1;
                while(k<m-1){
                    list2=list2.next;
                    k++;
                }
                ListNode list4=list2.next.next;
                
               
                // ListNode list2=list1.next;
                list2.next=list4;
                list1=list4;
                // list4.next=list1;
            }
            return list1.val;
        }
    }
  • 相关阅读:
    axios全局配置
    014 Javascript(148
    013 Javascript(134
    axios的基本使用
    axios简介
    012 Javascript(126
    016 HTML+CSS(Class198
    015 HTML+CSS(Class184
    014 HTML+CSS(Class165
    LCA题目选讲2
  • 原文地址:https://www.cnblogs.com/jieyi/p/14207296.html
Copyright © 2011-2022 走看看