国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

賽碼模擬題:股神 stockmaster (java8)

張漢慶 / 1949人閱讀

摘要:我認(rèn)為賽碼的題挺有趣的其實(shí),所以還是值得做。還有更快的方法,舉例發(fā)現(xiàn)股價(jià)和天數(shù)之間是有一些規(guī)律的發(fā)現(xiàn)同一遞增周期內(nèi)股價(jià)與天數(shù)的差值相同。接下來只要能總結(jié)出天數(shù)和差值的關(guān)系就能知道股價(jià)了。

題目: 股票會有以下變化:第一天不變,以后漲一天,跌一天,漲兩天,跌一天,漲三天,跌一天...依此類推。
為方便計(jì)算,假設(shè)每次漲和跌皆為1,股票初始單價(jià)也為1,請計(jì)算買股票的第n天每股股票值多少錢?
例子:
輸入: 1 2 3 4 5 (分別代表第1 2 3 4 5天)
輸出: 1 2 1 2 3 (對應(yīng)每天的股價(jià))

輸入聲明:
輸入包括多組數(shù)據(jù);
每行輸入一個(gè)n,1<=n<=10^9 。

賽碼網(wǎng)的題跟Leetcode不同的是:賽碼要求我們寫讀取輸入的代碼,Leetcode只要寫函數(shù)就行。賽碼主要使用Scanner來讀取輸入(有套路),題目的輸入輸出都挺簡潔,大多只是數(shù)字,字符串或數(shù)組,不會像LeetCode的輸出會有長串的鏈表,有些看著會很復(fù)雜。
有人說賽碼的編譯很不好,但有些是使用者自身代碼質(zhì)量問題,至少我用Java到現(xiàn)在沒有出現(xiàn)過什么問題,如果編譯不對可以看看別人的代碼。
我認(rèn)為賽碼的題挺有趣的其實(shí),所以還是值得做。

解法:

這題我一開始想用的是用遞歸來做,第n天的股價(jià)遞歸到第1天開始算起,但要注意n的范圍是10^9,遞歸算法會導(dǎo)致層數(shù)太多內(nèi)存溢出,所以通不過測試。還有要注意的就是n很大不能用int裝,java里可以用Integer,當(dāng)然double也可以。

可以兩個(gè)循環(huán)一天天算,這樣時(shí)間復(fù)雜度是O(n)吧,可以做。

還有更快的方法,舉例發(fā)現(xiàn)股價(jià)和天數(shù)之間是有一些規(guī)律的:

發(fā)現(xiàn)同一遞增周期內(nèi)股價(jià)與天數(shù)的差值相同。
接下來只要能總結(jié)出天數(shù)和差值的關(guān)系就能知道股價(jià)了。
發(fā)生跳轉(zhuǎn)的天數(shù)位1,3,6,10....對應(yīng)的差值為0,2,4,6...
發(fā)現(xiàn)天數(shù)為累加和:
1=1
3=1+2
6=1+2+3
10=1+2+3+4
...
剛好差值又是線性等差
那么就可以找到這樣的關(guān)系: 天數(shù)=(1+(差值/2+1))/2; 股價(jià)=天數(shù)+差值

代碼:

import java.util.*;
public class Main {

    private static Integer stockPrice(Integer temp) {
        int sum = 1, count = 1;
        while(sum <= temp) {
            count++;
            sum+=count;
        }
        return  temp == 1 ? 1 : temp - 2 * (count - 2);
    }

    public static void main(String args[]) {

        Scanner cin = new Scanner(System.in);

        while (cin.hasNextInt()) {
            Integer output= 0;
            Integer temp = cin.nextInt();
            System.out.println(stockPrice(temp));

        }

        cin.close();

    }

}

時(shí)間:216ms 話說整個(gè)時(shí)間我真不確定是不是跟網(wǎng)速有關(guān)系。。。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/66074.html

相關(guān)文章

  • 賽碼網(wǎng)編程題--“股神

    摘要:昨天看到了賽碼在線編程的一道題,熱度很高。賽碼股神題目是這樣的漲一天,跌一天,漲兩天,跌一天看似很有規(guī)律,看似很簡單。給大神跪了。。。大神們的解法簡單易懂的方法以上是最高票的答案。。。 昨天看到了賽碼在線編程的一道題,熱度很高。賽碼-股神題目是這樣的: showImg(https://segmentfault.com/img/bVbgMXd?w=1053&h=569); 漲一天,跌一天...

    SexySix 評論0 收藏0
  • 賽碼擬題:蛇形填數(shù) SnakeSquare (Java 8)

    摘要:題目在方陣?yán)锾钊胍筇畛缮咝?。填?shù)的循環(huán)按照走。重點(diǎn)是控制蛇的方向和移動(dòng)范圍。假設(shè)表示行數(shù),表示列數(shù)垂直向下,遞增,不變,到達(dá)最下方變水平,遞增變?yōu)檫f減。還有要注意矩陣下標(biāo)和坐標(biāo)的區(qū)別,原點(diǎn)位置不同,不建議用作為變量名,易混淆。 題目:在nn方陣?yán)锾钊?,2,...,nn,要求填成蛇形。例如n=4時(shí)方陣為: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 ...

    lk20150415 評論0 收藏0
  • java8-模擬hadoop

    摘要:的入門程序,也能實(shí)現(xiàn)統(tǒng)計(jì)單詞數(shù)量程序特殊文件需要格式轉(zhuǎn)換為將多個(gè)流融合為一個(gè)統(tǒng)計(jì)單詞數(shù)量程序通過自定義統(tǒng)計(jì),其實(shí)也使用的是記住凡是 hadoop的入門程序,java8也能實(shí)現(xiàn) txt統(tǒng)計(jì)單詞數(shù)量程序 @Test public void fileWordCount() throws IOException { //特殊文件需要格式轉(zhuǎn)換為txt Files.readAllL...

    roundstones 評論0 收藏0
  • 京東實(shí)習(xí)生招聘題目解析(二)

    摘要:買糖果題目來源京東實(shí)習(xí)生招聘原題鏈接可在線提交賽碼網(wǎng)問題描述某糖果公司專門生產(chǎn)兒童糖果,它最受兒童歡迎的糖果有兩個(gè)序列,均采用盒式包裝。小東希望你能幫她解決這一問題。 最近比較忙,又有一段時(shí)間沒寫題目了,終于在前幾天把賽碼網(wǎng)上,JD的2016秋招和2017實(shí)習(xí)生招聘剩下的4星難度題目做了,至此所有4星難度題目都解決了,5星難度題目還剩下一個(gè)應(yīng)該是計(jì)算幾何學(xué)的題目,因?yàn)檫@塊我不熟悉,后面...

    UnixAgain 評論0 收藏0
  • 前端開發(fā)應(yīng)屆生面試指南(含各大公司具體指南及面試真題)

    摘要:先介紹一下本人應(yīng)屆前端開發(fā)一枚,非科班出身,專業(yè)是化學(xué),大學(xué)期間開始自學(xué)前端開發(fā),在今年春招實(shí)習(xí)和秋招的時(shí)候投了一些公司,拿到一些京東拼多多虎牙等,總體來說還算滿意,特地寫一篇文章來總結(jié)一下面試的那些套路。 showImg(https://segmentfault.com/img/remote/1460000011897700); 先介紹一下本人應(yīng)屆前端開發(fā)一枚,非科班出身,專業(yè)是化學(xué)...

    sunnyxd 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<