Delegate Delegate也是iOS和Mac OSX開(kāi)發(fā)中最長(zhǎng)使用的一種設(shè)計(jì)模式,其主要作用是將一個(gè)對(duì)象方法的實(shí)現(xiàn),交給另外一個(gè)對(duì)象去實(shí)現(xiàn)。 Objective-C ...
通知 通知是iOS開(kāi)發(fā)中常用的一種設(shè)計(jì)模式,在Objective-C和Swift中的使用是有差別的。 Objective-C:NSNotificationCenter 拋通知...
Array Array是Swift中的數(shù)組,它類(lèi)似于Objective-C中的NSArray和C++中的vector。Array是struct的,也就是值類(lèi)型的。 二維數(shù)組 ...
最小路徑和 最近在學(xué)習(xí)swift編程語(yǔ)言,接觸了swift中數(shù)組Array的使用,正好在翻閱之前校招面試鵝廠(chǎng)時(shí)的面試算法題。正好可以使用swift中的二維數(shù)組來(lái)練習(xí)下這個(gè)題目...
KVO KVO(Key-value observing)是cocoa編程模式中的一種通知機(jī)制,其主要用來(lái)觀(guān)察一個(gè)對(duì)象屬性變化。KVO在變化分層設(shè)計(jì)中是最常用,比如說(shuō)MVC中的...
背景 面試深圳某互聯(lián)網(wǎng)證券公司,算法題是給一個(gè)固定時(shí)間區(qū)間的股票價(jià)格,找出最佳買(mǎi)賣(mài)時(shí)機(jī),使得收益最大,其中一天只能買(mǎi)賣(mài)操作一次。這里最佳方案是使用雙指針?lè)椒?。在學(xué)習(xí)字符串和數(shù)...
抱歉,示例寫(xiě)錯(cuò)了。輸出應(yīng)該是2 ,已修改
字節(jié)跳動(dòng)iOS面試算法題——當(dāng)前數(shù)組中沒(méi)有的最小正整數(shù)背景 社畜初級(jí)程序員面試頭條iOS開(kāi)發(fā),被完虐。其中一個(gè)算法題如下: 給定一個(gè)整數(shù)數(shù)組,輸出當(dāng)前數(shù)組中沒(méi)有的最小正整數(shù) 示例1 輸入:[0, -1, 1, -4, 5, 6,...
背景 社畜初級(jí)程序員面試頭條iOS開(kāi)發(fā),被完虐。其中一個(gè)算法題如下: 給定一個(gè)整數(shù)數(shù)組,輸出當(dāng)前數(shù)組中沒(méi)有的最小正整數(shù) 示例1 輸入:[0, -1, 1, -4, 5, 6,...
背景 我們知道,在美股的交易時(shí)間是分冬令時(shí)和夏令時(shí)的。而在冬令時(shí)、夏令時(shí)對(duì)應(yīng)的北京交易時(shí)段也是不一樣的。 如下所示,其中時(shí)間都是北京時(shí)間。 冬令時(shí)(每年3月第一個(gè)星期六到11...
背景 工作中在做某個(gè)業(yè)務(wù)需求的時(shí)候,某同事的實(shí)現(xiàn),遇到了一個(gè)NSCalendar進(jìn)行日期轉(zhuǎn)換卡頓的問(wèn)題。 最后分析發(fā)現(xiàn)是調(diào)用了NSCalendar的轉(zhuǎn)換方法導(dǎo)致的,使用此方法...
背景 學(xué)習(xí)了快排之后,主要了解了分治思想。所以在LeetCode上看到了一個(gè)經(jīng)典的題目,所以嘗試使用快排解決。 題目 在未排序的數(shù)組中找到第 k 個(gè)最大的元素。請(qǐng)注意,你需要...
原理 一組數(shù)字,我們選取一個(gè)數(shù)字p,每一次都將小于p的數(shù)字放在左邊,大于p的數(shù)字放在右邊,那邊一遍下來(lái)就會(huì)保證p的位置正確的。 我們知道冒泡排序是通過(guò)每一趟交換而將數(shù)字歸位的...
冒泡排序 基本思想 每次比較兩個(gè)相鄰的元素,如果他們的順序錯(cuò)誤就交換這兩個(gè)元素。 圖解 給定一個(gè)數(shù)組[9, 6, 1, 5, 2, 4, 3, 8 , 7, 0],我們進(jìn)行從...