Algorithm
lc1184_公交站间的距离
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
func distanceBetweenBusStops(distance []int, start int, destination int) int { ans := 0 if start == destination { return ans } if start > destination { start, destination = destination, start } tmp := 0 n := len(distance) for i := start; i < destination; i++ { tmp += distance[i] } ans, tmp = tmp, 0 for i := destination; i < start+n; i++ { tmp += distance[i%n] } if tmp < ans { ans = tmp } return ans }
func distanceBetweenBusStops_ans(distance []int, start, destination int) int { if start > destination { start, destination = destination, start } sum1, sum2 := 0, 0 for i, d := range distance { if start <= i && i < destination { sum1 += d } else { sum2 += d } } return min(sum1, sum2) }
func min(a, b int) int { if a > b { return b } return a }
|
Review
TED你的职业发展,该走些弯路了
不要把自己局限在外界设定的传统的攀爬式的职业阶梯,而是自己不断去尝试,从而找到最适合自己的阶梯,过程中不断地进行一个自我提升,那么将会到达最终的目的地,当然大方向还是应该要有
Tips
GO 编程模式:错误处理
Share
分享一下这周正在看的书: concurrence in go.
这本书通过分析一些基本的并发概念,以及go为什么并发更容易,以及go并发的一些知识,让读者能对go并发有一个全局的了解