2018年3月31日 星期六

[Note #3][Algorithm] Kadane’s algorithm


Maximum subarray sum

Given an array of n numbers, our task is to calculate the maximum subarray sum, i.e., the largest possible sum of a sequence of consecutive values in the array.

1. Brute force: O(n^3) or O(n^2).

2. Divide and Conquer: O(n log(n)).

3. Kadane’s algorithm (Dynamic Programming): O(n)

int best = 0, sum = 0;
for (int k = 0; k < n; k++) {
    sum = max(array[k], sum + array[k]);
    best = max(best, sum);
}
cout << best << "\n";



[FWD] Book: Competitive Programming


First edition: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.457.3263&rep=rep1&type=pdf (The latest edition is the 3rd but not free in the Internet.)

Related book: Antti Laaksonen, Competitive Programmer’s Handbook. [PDF]


2018年3月9日 星期五

王玉皇《刑罰與社會規訓》


原本以為會講很多 Michel Foucault 理論的東西,不過這本書談幾個重要議題,相互印證 Michel Foucault 講的東西,突然覺得很有啟發性,畢竟理論還是要能夠結合現實發生的問題。以台灣來說問題大概就是:
  • 吸毒行為
  • 販賣毒品行為
  • 原住民犯罪

簡單引幾段話:

「社會大眾自己要求制定規範來管理自己、規訓自己,並要求國家行政體系大量進入原本應該屬於私人的生活領域。因此,任何足以使個人失去自我控制能力的行為,都有可能因為涉及到公眾福祉的損害,而成為公共討論的議題,或受到公共輿論的譴責與非難。」

「我國森林法雖規定,森林以國有為原則。然而,對於世居於山區的原住民而言,這樣的規定無異是強迫他們放棄原本對山林自然資源的依賴,也是一種限制原住民傳統生活與習慣的刑事法規範。雖然這樣的刑事法規範,有其保護森林資源的重要意義存在,但同時也是一種企圖強迫原住民改變既有生活型態的規範。」


再深入的問題,可能答案要往哲學方向找了,國家並不能幫你解決問題,我還是主張國家的本質就是邪惡。