国产探花免费观看_亚洲丰满少妇自慰呻吟_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 ;     }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万州区| 宁阳县| 通辽市| 平安县| 永修县| 隆子县| 张家川| 靖远县| 区。| 绥化市| 勃利县| 林西县| 凭祥市| 锦州市| 溆浦县| 尼玛县| 安多县| 炉霍县| 毕节市| 琼海市| 当雄县| 新兴县| 聂荣县| 青神县| 光山县| 北安市| 大理市| 鲁甸县| 巴东县| 沿河| 慈利县| 乌兰县| 涡阳县| 云南省| 清流县| 高平市| 犍为县| 钟祥市| 保定市| 紫金县| 洮南市|