劍指offer--algorithm4

在寫之前筋岛,順便逛了一下仁兄的主頁茫孔,受益匪淺淹冰,把自己有所感悟的地方摘抄下來库车,慢慢領(lǐng)悟
關(guān)于效率--產(chǎn)能和產(chǎn)出

真正的效能應(yīng)該包含兩個(gè)要素:一是“產(chǎn)出”,即金蛋樱拴;二是“產(chǎn)能”——生產(chǎn)的資產(chǎn)或能力柠衍,即下金蛋的鵝洋满。
在生活中“重蛋輕鵝”的人,最終會(huì)連這個(gè)產(chǎn)金蛋的資產(chǎn)也保不住珍坊。反之牺勾,“重鵝輕蛋”的人蔓榄,最后自己都可能會(huì)被活活餓死忘朝,更不用說鵝了。
所以毛嫉,效能在于產(chǎn)出與產(chǎn)能的平衡袱饭。

日常生活中,你是否曾為了多收獲幾枚金蛋而廢寢忘食地工作呛占,結(jié)果弄得精疲力竭虑乖,無法繼續(xù)工作?其實(shí)若能好好睡一覺晾虑,那么第二天就會(huì)精力充沛疹味,完成更多的工作,更好地迎接這一天的挑戰(zhàn)帜篇。
再比如糙捺,你強(qiáng)迫別人按你的意志行事,結(jié)果卻發(fā)現(xiàn)你們的關(guān)系變得空洞無物笙隙;反過來洪灯,如果你能用時(shí)用心經(jīng)營人際關(guān)系,就能贏得信任與合作竟痰,通過開誠布公的交流獲得實(shí)質(zhì)性的進(jìn)展签钩。

對(duì)待愛

“可是沒有愛,你讓我怎么去愛呢坏快?”
“老兄铅檩,愛是一個(gè)動(dòng)詞,愛的感覺是愛的行動(dòng)所帶來的成果莽鸿,所以請(qǐng)你愛她昧旨,為她服務(wù),為她犧牲祥得,聆聽她心里的話兔沃,設(shè)身處地為她著想,欣賞她啃沪,肯定她粘拾。你愿意嗎?”
在所有進(jìn)步的社會(huì)中创千,愛都是代表動(dòng)作缰雇,但消極被動(dòng)的人卻把愛當(dāng)做一種感覺入偷。好萊塢式的電影就常灌輸這種不必為愛負(fù)責(zé)的觀念——因?yàn)閻壑皇歉杏X,沒有感覺械哟,便沒有愛疏之。事實(shí)上,任由感覺左右行為是不負(fù)責(zé)任的做法暇咆。

以一灌之的原則性---男人的一生應(yīng)樹立自始不變的價(jià)值觀 目前做人最失敗之處锋爪,搖擺不定,瞻前顧后爸业,價(jià)值觀匱乏

現(xiàn)在假定你已經(jīng)買好票其骄,準(zhǔn)備晚上與配偶一起去聽音樂會(huì),對(duì)方興奮不已扯旷,滿懷期待拯爽。
可是下午四點(diǎn)鐘,老板突然來電話要你晚上加班钧忽,理由是第二天上午九點(diǎn)鐘有一個(gè)重要會(huì)議毯炮。
◆對(duì)以家庭或配偶為中心的人而言,當(dāng)然是優(yōu)先考慮配偶的感覺耸黑,為了不讓他(她)失望桃煎,你很可能會(huì)委婉地拒絕老板。即使為了保住工作而勉強(qiáng)留下來加班大刊,心里也一定十分不情愿为迈,擔(dān)心著配偶的反應(yīng),想著用什么合適的理由來平息他(她)的失望與不滿奈揍。
◆以金錢為中心的人則看重加班費(fèi)或加班對(duì)于老板調(diào)薪?jīng)Q策的影響曲尸,于是理直氣壯地告訴配偶自己要加班,并理所當(dāng)然地認(rèn)為對(duì)方應(yīng)該諒解男翰,畢竟經(jīng)濟(jì)利益高于一切另患。
◆以工作為中心的人會(huì)覺得正中下懷,因?yàn)榧影嗉瓤梢宰屪约涸黾咏?jīng)驗(yàn)蛾绎,又是一個(gè)很好的表現(xiàn)機(jī)會(huì)昆箕,有利晉升,所以不論是否需要租冠,都會(huì)自動(dòng)延長加班時(shí)間鹏倘,并想當(dāng)然地以為配偶會(huì)以此為榮,不會(huì)為爽約一事小題大做顽爹。
◆以名利為中心的人纤泵,會(huì)算計(jì)~下加班費(fèi)能買到什么,或者考慮一下加班對(duì)個(gè)人形象有何助益镜粤,比如贏得一個(gè)為工作而犧牲自己的美譽(yù)捏题。
◆以享樂為中心的人玻褪,即使配偶并不介意,也還是會(huì)撇下工作赴約公荧,因?yàn)閷?shí)在需要犒勞自己一下带射。

以原則為中心的人會(huì)保持冷靜和客觀,不受情緒或其他因素的干擾循狰,綜觀全局——工作需要窟社、家庭需要、其他相關(guān)因素以及不同決定的可能后果绪钥,深思熟慮后才做出正確的選擇灿里。

雙贏思維--情侶之間,合作伙伴之間程腹,如果不能雙贏钠四,寧可不做,畢竟互不相欠跪楞,任意無所的違心妥協(xié),都是不正當(dāng)?shù)娜穗H關(guān)系

在相互依賴的環(huán)境里侣灶,任何非雙贏的解決方案都不是最好的甸祭,因?yàn)樗鼈兘K將對(duì)長遠(yuǎn)的關(guān)系產(chǎn)生這樣那樣的不利影響,你必須慎重對(duì)待這些影響的代價(jià)褥影。如果你無法同對(duì)方達(dá)成雙贏的協(xié)議池户,那么最好選擇放棄。
在家里凡怎,“不能雙贏就干脆放棄”這個(gè)原則也能讓大家感到輕松自由校焦。如果在看什么電影的問題上僵持不下,那么不如放棄看電影统倒,做些別的事情寨典,總比這個(gè)夜晚有人歡喜有人愁的要好。

有效溝通房匆、有效溝通耸成、有效溝通--重要的事情說三遍,自己做的很失斣『琛井氢! 關(guān)鍵在于抓重點(diǎn)、邏輯的清晰度岳链、對(duì)整體事物的宏觀把控

接下來進(jìn)入正題

題7--查找和排序
查找的方法無外乎有三種--二分查找花竞、哈希表查找、二叉排序樹查找
排序的方法有--插入排序掸哑、冒泡排序约急、歸并排序零远、快速排序

題目如下---旋轉(zhuǎn)數(shù)組的最小數(shù)字

把一個(gè)數(shù)組最開始的若干個(gè)元素搬到數(shù)組的末尾,我們稱之為數(shù)組的旋轉(zhuǎn)烤宙。
輸入一個(gè)遞增排序的數(shù)組的一個(gè)旋轉(zhuǎn)遍烦,輸出旋轉(zhuǎn)數(shù)組的最小元素。
例如數(shù)組{3,4,5,1,2}為{1,2,3,4,5}的一個(gè)旋轉(zhuǎn)躺枕,該數(shù)組的最小值為1服猪。

本題可能遇到的情況有兩種:
第一是第一個(gè)指針、第二個(gè)指針?biāo)傅臄?shù)字和兩個(gè)指針之間的數(shù)字不相同--二分查找
第一是第一個(gè)指針拐云、第二個(gè)指針?biāo)傅臄?shù)字和兩個(gè)指針之間的數(shù)字相同--順序查找
具體的思路罢猪,書中很清楚,摘錄如下:


image.png

image.png
image.png

image.png

下面是程序的代碼和注釋:


class solution (object):
    def min_number(self,rotatearray):
        if len(rotatearray)==0:
            return 0
        front=0#前指針的位置
        last=len(rotatearray)-1#后指針的位置
        midindex=0#初始化中間索引的位置
        while rotatearray[front]>=rotatearray[last]:#第一種情況叉瘩,使用二分查找
            if (int(last)-int(front))==1:#當(dāng)兩個(gè)指針的差值為1的時(shí)候膳帕,說明已經(jīng)檢索到位了
                midindex=last#將last的索引值賦值給midinex
                break#結(jié)束
            midindex=(int(front)+int(last))//2#整數(shù)除法,返回不大于該浮點(diǎn)值的整數(shù)薇缅,也就是前指針或者后指針?biāo)苿?dòng)的位置,重新定義中間索引的位置
            if rotatearray[front]==rotatearray[last] and rotatearray[last]==rotatearray[midindex]:#第二種情況當(dāng)頭指針的數(shù)字危彩,與尾指針的數(shù)字以及中間位置的數(shù)字相同時(shí),采用順序查找法
                return self.equal(rotatearray,front,last)#調(diào)用下一個(gè)方法
            if rotatearray[front]<=rotatearray[midindex]:
                front=midindex#挪動(dòng)前指針的位置
            if rotatearray[midindex]<=rotatearray[last]:
                last=midindex#挪動(dòng)后指針的位置
        return rotatearray[midindex]#當(dāng)?shù)谝粋€(gè)指針?biāo)傅臄?shù)字小于另外一個(gè)指針?biāo)傅臄?shù)字的時(shí)候泳桦,比如[1,2,3,4,5],那么就返回midindex=0,即序列中的第一個(gè)數(shù)
    def equal(self,rotatearray,first,end):#第二種情況順序方法
        result=rotatearray[0]#初始化要進(jìn)行比較的數(shù)據(jù)
        for i in rotatearray[first:end+1]:
            if i<result:
                result=i#賦值汤徽,逐一比較
        return result 
    
                


def main():
    test=solution()
    #minnumber=test.min_number([3,4,5,1,2])
    minnumber=test.min_number([1,2,3,4,5])
    print (minnumber)
    
if __name__=='__main__':
    main()

題8--遞歸和循環(huán)

遞歸一般代碼簡潔,由于循環(huán)的代碼灸撰,但是也有其缺點(diǎn)谒府,遞歸為函數(shù)自己調(diào)用自己,每一次調(diào)用都需要在內(nèi)存棧中分配空間以保存參數(shù)浮毯、返回地址和臨時(shí)變量完疫、往棧里壓入和彈出數(shù)據(jù)都需要時(shí)間

題目如下--斐波那契數(shù)列

當(dāng)數(shù)的個(gè)數(shù)為零時(shí),返回零债蓝、數(shù)的個(gè)數(shù)為1時(shí)返回1壳鹤,數(shù)的個(gè)數(shù)大于1時(shí),后一個(gè)數(shù)為前兩個(gè)數(shù)的和
斐波那契函數(shù)的變種題即為青蛙跳惦蚊,關(guān)于兩者的聯(lián)系器虾,書中是這樣介紹的:

image.png

代碼和注釋:

"""
一般來講斐波那契函數(shù)都是第一個(gè)數(shù)為0,第二個(gè)數(shù)為1
我在程序里稍作改動(dòng)蹦锋,可以更加靈活的改變斐波那契的前兩個(gè)數(shù)
"""
class solution(object):
    def __init__(self,array,n):
        self.array=array
        self.n=n 
    def fb(self):
        num=len(self.array)
        if int(num)==0:
            return 0
        if int(num)==1:
            return 1
        elif int(num)>1:
             return self.dg_solution(self.n)
    def dg_solution(self,m):
        if m<=len(self.array):
            return self.array[m-1]
        else:
             return (self.dg_solution(m-1)+self.dg_solution(m-2))
         
            
def main():
    test=solution([1,2],5)
    print (test.fb())
    
if __name__=='__main__':
    main()

多讀書兆沙,樹立堅(jiān)定地人生觀,堅(jiān)持讀完月童度河莉掂,下次見面葛圃,希望有新的書單list

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子库正,更是在濱河造成了極大的恐慌曲楚,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,222評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件褥符,死亡現(xiàn)場(chǎng)離奇詭異龙誊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)喷楣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門趟大,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人铣焊,你說我怎么就攤上這事逊朽。” “怎么了曲伊?”我有些...
    開封第一講書人閱讀 157,720評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵叽讳,是天一觀的道長。 經(jīng)常有香客問我坟募,道長岛蚤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,568評(píng)論 1 284
  • 正文 為了忘掉前任懈糯,我火速辦了婚禮灭美,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昂利。我一直安慰自己,他們只是感情好铁坎,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,696評(píng)論 6 386
  • 文/花漫 我一把揭開白布蜂奸。 她就那樣靜靜地躺著,像睡著了一般硬萍。 火紅的嫁衣襯著肌膚如雪扩所。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,879評(píng)論 1 290
  • 那天朴乖,我揣著相機(jī)與錄音祖屏,去河邊找鬼。 笑死买羞,一個(gè)胖子當(dāng)著我的面吹牛袁勺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畜普,決...
    沈念sama閱讀 39,028評(píng)論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼期丰,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钝荡,我...
    開封第一講書人閱讀 37,773評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤街立,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后埠通,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赎离,經(jīng)...
    沈念sama閱讀 44,220評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,550評(píng)論 2 327
  • 正文 我和宋清朗相戀三年端辱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了梁剔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,697評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡掠手,死狀恐怖憾朴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喷鸽,我是刑警寧澤众雷,帶...
    沈念sama閱讀 34,360評(píng)論 4 332
  • 正文 年R本政府宣布,位于F島的核電站做祝,受9級(jí)特大地震影響砾省,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜混槐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,002評(píng)論 3 315
  • 文/蒙蒙 一编兄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧声登,春花似錦狠鸳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至脯厨,卻和暖如春铅祸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背合武。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評(píng)論 1 266
  • 我被黑心中介騙來泰國打工临梗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稼跳。 一個(gè)月前我還...
    沈念sama閱讀 46,433評(píng)論 2 360
  • 正文 我出身青樓盟庞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親汤善。 傳聞我的和親對(duì)象是個(gè)殘疾皇子茫经,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,587評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容