国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

約瑟夫環

2019-11-08 01:57:38
字體:
來源:轉載
供稿:網友

給一個長度為n的環,從編號為0的節點開始數,數到m-1時移除該節點,問最終剩下節點的編號

方法一:直接模擬鏈表移除

import java.util.LinkedList;import java.util.List;public class Solution {	public int LastRemaining_Solution(int n, int m) {        if(m==0)return -1 ;         LinkedList list = new LinkedList() ;         for(int i = 0;i < n;i++){            list.add(i) ;         }        int pos = 0;         for(int i = 0;i < n-1;i++){            int len = (n-i) ;             pos = (pos+m-1)%len   ;             list.remove(pos) ;         }        return list.get(0) ; 	}}

對于長度為n的環,其第一個移除的節點為(m-1)%n點,那么其下一個節點的編號為k=m%n,以其下一個節點開始的節點編號為k,k+1,k+2....n-2,n-1,0,1....k-2剩下的n-1個節點可以看成一個新的約瑟夫環,0,1,2.......................n-2設新的約瑟夫環中求得的最終結果為x,可以很明顯地可以看到x在原來的約瑟夫環中的坐標為(x+k)%n可以得到遞推公式為f(n)=(f(n-1)+m)%n其中f(n)為n個約瑟夫環的值

public class Solution {     public int LastRemaining_Solution(int n, int m) {        if(m==0)return -1 ;         if(n==0)return 0 ;         return (LastRemaining_Solution(n-1,m)+m)%n ;     }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德钦县| 红原县| 玉林市| 姜堰市| 垣曲县| 盘山县| 南开区| 南乐县| 沧源| 石狮市| 丹凤县| 景东| 陇西县| 铜山县| 阿尔山市| 奉化市| 象山县| 涪陵区| 竹山县| 南岸区| 大丰市| 上栗县| 临湘市| 香格里拉县| 邹平县| 时尚| 海林市| 江孜县| 辉南县| 定远县| 长垣县| 田阳县| 河南省| 项城市| 苏尼特左旗| 沐川县| 河西区| 神池县| 蓬莱市| 楚雄市| 元氏县|