發表文章

目前顯示的是 8月, 2017的文章

[思路]LeetCode Problems- 657. Judge Route Circle

圖片
Leetcode於每周末都會舉辦線上的程式解題比賽,在比賽結束後便會釋出最新的題目供大家練習.這次要介紹的便是上週出現的新題目.題目原文如下: Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot makes a circle, which means it moves back to  the original place . The move sequence is represented by a string. And each move is represent by a character. The valid robot moves are  R  (Right),  L (Left),  U  (Up) and  D  (down). The output should be true or false representing whether the robot makes a circle. Example 1: Input: "UD" Output: true Example 2: Input: "LL" Output: false 題目假設有一機器人在原點位置,則給定字串UDLR來讓它上下左右在二維平面中移動,回傳最後位置是否還停留在原點上. 一開始看到時我的想法是先假設好一個二維的空間, 若程式偵測到有'U'的話,則在Y軸方向加1, 有'R'的話則在X軸方向加1....諸如此類. 但是其實就程式的結果來看,我們並不需要知道機器人最後會落在座標平面上的哪個位置,重點是只要知道"在不在原點上"就好了. 因此程式設計的邏輯還可以再簡單 精簡成為一目標就是"走向左邊的步數"等於"走向右邊的步數",並且"走向上的步數"等於"走向下的步數" 意指在要看字串中"U的個數=D的個數"並且"L的個數=R的個數" 達成這個條件就知道

[思路]LeetCode Problems- 617. Merge Two Binary Trees

圖片
本篇的問題與處理資料樹狀結構有關,題目原文如下: Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge them into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be used as the node of new tree. Example 1: Input: Tree 1 Tree 2 1 2 / \ / \ 3 2 1 3 / \ \ 5 4 7 Output: Merged tree: 3 / \ 4 5 / \ \ 5 4 7 Note:  The merging process must start from the root nodes of both trees. 除此之外,原始程式碼還有附上二元樹的定義: /**  * Definition for

[心得]"把合理當正確"的謬誤--邏輯謬誤鑑識班 Lesson 1

圖片
購書連結: http://www.books.com.tw/products/0010733317 (此文章僅為個人學習用途並針對書籍做重點心得摘要,若要更多細節,實例與圖示請購買本書支持作者) 小時候看卡通"名偵探柯南"一定對這名言不陌生:"真相永遠只有一個" 真相的確只有一個,但是根據此真相而得出的[合理推測]卻有非常多個. 當我們聽到一個 合理的 推測時,常常就會將其當作是 正確的 事實,這算是大部分人日常會犯的思考問題.學術上的名詞又稱作 訴諸可能(Appeal to Possibility/Probability) .是非形式謬誤的一種. 就以名偵探柯南這類的推理文本來說,常會有推理的劇情不夠嚴謹,就只把一個合理的推論當作是真相的情節發生.而在案件當中,其實 還有其他很多合理的解釋,只找到其中一個合理解釋,並不等於找到正確的真相. 好的推理劇情會考慮各種的可能性,而不只專注於單一證據.如同柯南道爾借福爾摩斯之口在小說中提到: "......拿現場做證據是很靠不住的.它好像可以直接了當地證實某一種情況,但是如果你稍微改變一個觀點,那你就可能會發現,他同樣可以明確無誤地證實另一種迴然不同的情況." 當然這情況在電影小說中無傷大雅,當作是娛樂消遣看看也好,但是在實際生活中則不能太隨便看待. 例如前幾天在報章雜誌看見的新聞為例 藍智庫質疑臉書搞「綠色恐怖」籲公開審查機制 國民黨智庫開記者會指控臉書會將批評蔡政府的貼文與帳號停權下架,質疑臉書被台灣的政府控制言論自由 因為臉書會刪批評政府的貼文與帳號,所以覺得臉書偏袒民進黨,是綠色恐怖.這樣的推論字面上看是合理的, 但對於熟悉社群網路機制的人而言,就曉得這樣的解釋並不正確. 根據臉書的社群守則,如果用戶針對特定族群發表仇恨言論,或是涉嫌濫用帳號,反覆發送垃圾訊息,就會導致用戶帳號遭停權、貼文被刪除. 所以反過來看,也許是因為批評的貼文素質不佳,所以才會被臉書刪文. 這個謬誤另一種常見變形是 "把合理的謠言當正確的事情" . 若沒有針對這些謠言與誤傳做查證,我們自然而然地 思考容易會被謠言或是誤傳所影響尤其當這些傳言很合理時,其作用力就越大 在前幾年台灣有一波反韓的熱潮,

[書摘]研究所這條路 第八章:贏在起跑點

圖片
(此文章僅為個人學習用途並針對書籍做重點整理摘要,若要更多細節,實例與圖示請購買本書支持作者) 購書連結: http://www.books.com.tw/products/0010599014 <研究所這條路:升學、研究、社交、謀職一把罩的研究所生存術>由Robert L. Peters所著, 是在教美國研究所的介紹,挑選,論文,甚至是謀職等和研究生密切相關的建議. 全書共有23個章節, 書本前半部花了很長時間討論是否該讀研究所,如何申請研究所,以及挑選論文指導教授, 一直到第八章才開始進入本書的正題: 進入研究所該做的事 *馬上要做的八件事 一.買一台好電腦 電腦如今已經成為必備品.你可以透過電腦上網搜尋資料,收發郵件,紀錄與分析資料,撰寫自傳與論文,以及尋找工作 二.設定行事曆 包含預定的研究所課程與計畫.只要設定好行事曆,便能專注於長期目標,並藉此激勵自己規律工作.行事曆最好包括下列六個部分: 1.研究所學程規劃表 你若要保持進展,就要專注於長期目標. 紀錄所有重要事件的截止日期.可以使用專案管理軟體來製作時間表,讓自己知道寫論文的每個階段該花多少時間,以及如何多工處理事情 規畫好之後貼到顯眼之處 2.月曆 並列兩個月的月曆表 ,如此才不會忘記下個月初該做甚麼.每天都要花點時間檢查月曆 3.周曆 把每天劃分小時來記錄行程.規劃課程與例行會議 4.可攜式周曆 隨身攜帶它提醒自己該做甚麼 5.日誌 激勵自己與紀錄生產力.知道每天的工作量 6.任務表 提醒自己尚待完成的工作 三.設定好歸檔系統 研究所文件太多,必須好好整理檔案 分類文件方式: 申請研究所資料 論文構想 論文計畫書 畢業論文 訪談紀錄 期刊論文題目的構想 參與研究所支援團體時紀錄的筆記 會議與研討會檔案 考試資料 過去的任務表 每月進度報告 每個月都要寫一到兩頁的報告 ,內容包括: (1)總結該月的進度 (2)每月進度跟長期研究計劃之間的關聯 (3)下個月該採取的步驟 (4)遭遇的困難 拿給教授過目使其明確知道你需要哪些協助 經濟資助與申請資料 求職資料 專業資格的文件 影印資料 四.每天寫日誌 每天晚上都要回想自己做了甚麼,藉此評估進