麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

一道算法題的一種O(n)解法

2019-11-17 03:49:27
字體:
供稿:網(wǎng)友
很早就有去做做的想法,可是一直沒動(dòng)手

今天花了點(diǎn)時(shí)間搞搞

結(jié)果如下:

核心部分





代碼
1  public List<Result> GetResults(int[] arr)
2         {
3             //輸入有效性檢測(cè)
4             if (arr.Length==0)
5                 throw new NotEnoughInputException();
6
7             List<Result> rlist = new List<Result>();
8             
9             //實(shí)際運(yùn)算
10             
11             //初始化起始位置,將第一點(diǎn)當(dāng)作后續(xù)結(jié)果的起點(diǎn)
12             Position startP = new Position(Position.EmptyPosition, arr[0]);
13
14             //當(dāng)前點(diǎn)就當(dāng)作是最大結(jié)果值
15             Result curResult = new Result(Position.EmptyPosition, startP);
16
17             //向結(jié)果列表添加內(nèi)容
18             rlist.Add(curResult);
19
20             //有一個(gè)以上的數(shù)據(jù)
21             if (arr.Length > 1)
22             {
23                 Position curP,nextP;
24                 curP=startP;
25                 Result temp;//保存到目前點(diǎn)為止的結(jié)果數(shù)據(jù)
26                 //從第二個(gè)點(diǎn)開始逐個(gè)判斷
27                 for (int i = 1; i < arr.Length; i++)
28                 {
29                     //構(gòu)造對(duì)象
30                     nextP = new Position(curP,arr[i]);
31                     temp = new Result(startP, nextP);
32
33                     //判斷當(dāng)前的和是否大于現(xiàn)有結(jié)果列表中的數(shù)據(jù)
34                     if (temp.RelativeElevation > rlist[0].RelativeElevation)
35                     {//如果大于則清除結(jié)果列表,添加當(dāng)前結(jié)果
36                         rlist.Clear();
37                         rlist.Add(temp);
38                     }
39                     //判斷當(dāng)前的和是否等于現(xiàn)有結(jié)果列表中的數(shù)據(jù)
40                     else if (temp.RelativeElevation == rlist[0].RelativeElevation)
41                     {
42                         rlist.Add(temp);
43                     }
44                     //判斷當(dāng)前是否是一個(gè)新的低點(diǎn)
45                     else if(nextP.EndElevation<=startP.StartElevation)
46                     {
47                         startP = nextP;
48                     }
49                     curP = nextP;
50                 }
51             }           
52
53             return rlist;
54         }




代碼還有進(jìn)一步優(yōu)化的余地

主體思想就是模擬一個(gè)不斷爬山的人,爬完一遍后要回答那座山和山谷的相對(duì)落差最大

完整代碼在此

主要多用了些類,呵呵。

局部代碼有些不好理解,呵呵。比如里面關(guān)于全負(fù)數(shù)的處理。

歡迎拍磚  


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 香蕉国产在线视频 | 特逼视频| 亚洲一级网站 | 欧美特级一级毛片 | 国产1区在线观看 | 一级黄色在线免费观看 | 国内精品久久久久久久久久 | 成人免费网站在线观看 | 国产一区二区免费看 | 免费高潮在线国 | 成人免费在线观看视频 | 成人做爽爽爽爽免费国产软件 | 本站只有精品 | 欧美熟videos肥婆 | 久久精品综合视频 | 国产成人77亚洲精品www | 欧美中文字幕一区二区 | 男女羞羞视频在线免费观看 | 国产乱色精品成人免费视频 | 亚洲第一成网站 | 中文字幕一区在线观看视频 | 龙的两根好大拔不出去h | 一区www | 国产免费一区视频 | 久草在线资源福利站 | 亚洲成人福利电影 | 欧美交在线 | 欧美一区二区三区免费观看 | 久久91亚洲精品久久91综合 | 污黄视频在线观看 | av成人一区二区 | 久久免费视频8 | 日韩欧美精品中文字幕 | 国产精品久久久久网站 | 91短视频免费 | 福利免费在线观看 | 九九精品在线播放 | a视频在线看 | 999久久久 | 中文字幕极速在线观看 | 国产剧情在线观看一区二区 |