摘要:昨天看到了賽碼在線編程的一道題,熱度很高。賽碼股神題目是這樣的漲一天,跌一天,漲兩天,跌一天看似很有規(guī)律,看似很簡單。給大神跪了。。。大神們的解法簡單易懂的方法以上是最高票的答案。。。
昨天看到了賽碼在線編程的一道題,熱度很高。賽碼-股神
題目是這樣的:
漲一天,跌一天,漲兩天,跌一天....看似很有規(guī)律,看似很簡單。但昨天嘗試了一下,發(fā)現(xiàn)還是有點麻煩,因為他的數(shù)據(jù)范圍很大(10^9),絕對不能再嵌套循環(huán)!
然后我翻了下大神們的答案。。。給大神跪了。。。
var cmd = require("node-stdio"); var func = (n) => { let i = 0, k = 2, j = 2; while(k < n) { i = i + 2; j = j + 1; k = k + j; } return n - i; } var line; while((line=cmd.readInt()) != null){ cmd.print(func(line)); }簡單易懂的方法
以上是最高票的答案。。。講道理我沒怎么看懂。。。反正膜拜就對了
贊數(shù)靠前的大神們,基本也是像這樣用數(shù)學方法算的。
但我覺得這種方法不易懂,至少不適合我。
那有沒有更簡單的方法呢?今天又琢磨了一下,想到了一個超簡單的方法,突然感覺成就感max哈哈。
我的解法的核心思想就是圖形化,把抽象具體化。
漲一天,跌一天,漲兩天,跌一天,將這種狀態(tài)具體化記錄下來,可以這樣:10110 。聰明的你肯定懂了,下面直接上代碼
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal:false }) rl.on("line", (line) => { let n = +line.trim() let mark = "1", res = 1 for(let i=0, k=1; mark.length < n; i++) { let ans = Math.min(k,n - mark.length) if(i%2 == 1) { mark += 0 res-- } else { mark += "1".repeat(ans) res += ans k++ } } console.log(res) })
甚至都不需要記錄這個狀態(tài)字符串,因為他只需要最終的價格,所以優(yōu)化后代碼如下:
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal:false }) rl.on("line", (line) => { let n = +line.trim() let day = 1, res = 1 //mark是Number類型就可以了,代表第幾天 for(let i=0, k=1; day < n; i++) { let ans = Math.min(k,n - day) if(i%2 == 1) { day++ res-- } else { // mark += "1".repeat(ans) day += ans res += ans k++ } } console.log(res) })
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/97663.html
摘要:我認為賽碼的題挺有趣的其實,所以還是值得做。還有更快的方法,舉例發(fā)現(xiàn)股價和天數(shù)之間是有一些規(guī)律的發(fā)現(xiàn)同一遞增周期內(nèi)股價與天數(shù)的差值相同。接下來只要能總結(jié)出天數(shù)和差值的關(guān)系就能知道股價了。 題目: 股票會有以下變化:第一天不變,以后漲一天,跌一天,漲兩天,跌一天,漲三天,跌一天...依此類推。為方便計算,假設(shè)每次漲和跌皆為1,股票初始單價也為1,請計算買股票的第n天每股股票值多少錢?例子...
摘要:牛客網(wǎng)其中只支持單行輸入賽碼網(wǎng)注意,如果一行超過個字符,會被強制分行的,因此如果題目明確說明該行超過字符,請自行拼接當然,我們盡量不出這種題目。 刷題時js的輸入問題總結(jié)大部分來自于 http://www.cnblogs.com/floor/... 感謝解決燃眉之急 還有小部分是自己的整理和思考 目前常見平臺還不太支持ES6寫法 推薦js刷題平臺 https://www.codewa...
摘要:先介紹一下本人應(yīng)屆前端開發(fā)一枚,非科班出身,專業(yè)是化學,大學期間開始自學前端開發(fā),在今年春招實習和秋招的時候投了一些公司,拿到一些京東拼多多虎牙等,總體來說還算滿意,特地寫一篇文章來總結(jié)一下面試的那些套路。 showImg(https://segmentfault.com/img/remote/1460000011897700); 先介紹一下本人應(yīng)屆前端開發(fā)一枚,非科班出身,專業(yè)是化學...
摘要:先介紹一下本人應(yīng)屆前端開發(fā)一枚,非科班出身,專業(yè)是化學,大學期間開始自學前端開發(fā),在今年春招實習和秋招的時候投了一些公司,拿到一些京東拼多多虎牙等,總體來說還算滿意,特地寫一篇文章來總結(jié)一下面試的那些套路。 showImg(https://segmentfault.com/img/remote/1460000011897700); 先介紹一下本人應(yīng)屆前端開發(fā)一枚,非科班出身,專業(yè)是化學...
摘要:先介紹一下本人應(yīng)屆前端開發(fā)一枚,非科班出身,專業(yè)是化學,大學期間開始自學前端開發(fā),在今年春招實習和秋招的時候投了一些公司,拿到一些京東拼多多虎牙等,總體來說還算滿意,特地寫一篇文章來總結(jié)一下面試的那些套路。 showImg(https://segmentfault.com/img/remote/1460000011897700); 先介紹一下本人應(yīng)屆前端開發(fā)一枚,非科班出身,專業(yè)是化學...
閱讀 1523·2023-04-26 02:03
閱讀 4707·2021-11-22 13:53
閱讀 4579·2021-09-09 11:40
閱讀 3782·2021-09-09 09:34
閱讀 2125·2019-08-30 13:18
閱讀 3501·2019-08-30 11:25
閱讀 3295·2019-08-26 14:06
閱讀 2545·2019-08-26 13:52