ARTS 打卡 1

Algorithm

https://leetcode-cn.com/problems/qiu-12n-lcof/
求 1+2+...+n 胶台,要求不能使用乘除法假褪、for署咽、while、if生音、else宁否、switch、case等關(guān)鍵字及條件判斷語(yǔ)句(A?B:C)缀遍。
限制:1 <= n <= 10000

int sumNums(int n) {
    n && (n += sumNums(n - 1)); //也可以是(n-1) && (n += sumNums(n - 1));
    return n;
}

分析:

  • 題目中限制乘除操作慕匠,就不能使用(1+n)*n/2.0的公式了
  • 限制了控制語(yǔ)句和循環(huán)語(yǔ)句的使用,不能簡(jiǎn)單的遍歷計(jì)算了
  • 那么下面想到的就是遞歸來(lái)遍歷域醇,但是需要一個(gè)結(jié)束條件
  • 利用 && 語(yǔ)法的短路特性台谊,可以在 n == 0 的時(shí)候結(jié)束
  • 這個(gè)題主要考察基本語(yǔ)法的掌握情況

Review

SF Symbols | New Era in the iOS app symbols
講 iOS13 上系統(tǒng)自帶了很多圖標(biāo),這些圖標(biāo)如何使用譬挚。
這些圖標(biāo)(就目前來(lái)講)很少會(huì)在商業(yè) App 中使用锅铅,一個(gè)是樣式不一定符合 UI 要求,一個(gè)是系統(tǒng)兼容性殴瘦。

不過(guò)文章里提到了 FaceTime 的圖標(biāo)狠角,能且只能用在表示 FaceTime app 的場(chǎng)景号杠。說(shuō)不定某次需求蚪腋,會(huì)使用某種系統(tǒng)圖標(biāo)呢


FaceTime圖標(biāo)

Tips

CAShapeLayer添加太多性能也會(huì)比較差

之前只是使用 CAShapeLayer 做一些動(dòng)畫丰歌,使用場(chǎng)景比較單一,最近在了解使用 CAShapeLayer 或者 Metal 繪制圖形屉凯。

CAShapeLayer 是更省事的選擇立帖,可以直接將貝塞爾曲線渲染,也可以設(shè)置線的顏色悠砚,dash pattern等晓勇,很省事,但是也有很多局限灌旧,比如單個(gè) ShapeLayer只能有一種線顏色和填充顏色绑咱,只能有一種 dash pattern

所以如果繪制一個(gè)圖形,里面有多種顏色枢泰,或者繪制多個(gè)不同顏色的圖形描融,就需要多個(gè)CAShapeLayer。于是就測(cè)試了一下每幀刷新1000個(gè)CAShapeLayer的FPS衡蚂,最終解決在 iPhone11真機(jī)上是 20窿克,考慮到實(shí)際APP還有很多復(fù)雜渲染邏輯,這個(gè)結(jié)果不太理想毛甲。

#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, strong) CADisplayLink *link;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setupLayers];
    self.link = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateLayers)];
    self.link.preferredFramesPerSecond = 60;
    [self.link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
}

- (void)updateLayers {

    [self.view.layer.sublayers enumerateObjectsUsingBlock:^(__kindof CALayer * _Nonnull layer, NSUInteger idx, BOOL * _Nonnull stop) {
        if ([layer isKindOfClass:[CAShapeLayer class]]) {
            CAShapeLayer *shapeLayer = (CAShapeLayer *)layer;
            shapeLayer.fillColor = [self randomColor].CGColor;
        }
    }];
    
}

- (void)setupLayers {
    for (int i = 0; i < 500; i++) {

        CAShapeLayer *layer = [CAShapeLayer layer];
        layer.strokeColor = [UIColor redColor].CGColor;
        layer.fillColor = [self randomColor].CGColor;
        layer.path = [self generatePathWithIndex:i].CGPath;
        [self.view.layer addSublayer:layer];
    }
}

- (UIBezierPath *)generatePathWithIndex:(NSInteger)i {
    UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(10, 10, 500 - i/5.0, 500 - i/5.0)];
    path.lineWidth = 0.1;
    return path;
}

- (UIColor *)randomColor {
    return [UIColor colorWithRed:arc4random()%255/255.0 green:arc4random()%255/255.0 blue:arc4random()%255/255.0 alpha:1];
}

@end

FPS

Share

Metal并行計(jì)算的學(xué)習(xí)筆記:
Metal 學(xué)習(xí)筆記

另外轉(zhuǎn)發(fā)一篇?jiǎng)e人寫的好文:
為什么魂斗羅只有128KB卻可以實(shí)現(xiàn)那么長(zhǎng)的劇情年叮?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市玻募,隨后出現(xiàn)的幾起案子只损,更是在濱河造成了極大的恐慌,老刑警劉巖七咧,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件改执,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡坑雅,警方通過(guò)查閱死者的電腦和手機(jī)辈挂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)裹粤,“玉大人终蒂,你說(shuō)我怎么就攤上這事∫K撸” “怎么了拇泣?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)矮锈。 經(jīng)常有香客問(wèn)我霉翔,道長(zhǎng),這世上最難降的妖魔是什么苞笨? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任债朵,我火速辦了婚禮子眶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘序芦。我一直安慰自己臭杰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布谚中。 她就那樣靜靜地躺著渴杆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宪塔。 梳的紋絲不亂的頭發(fā)上磁奖,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音某筐,去河邊找鬼点寥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛来吩,可吹牛的內(nèi)容都是我干的敢辩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼弟疆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼戚长!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起怠苔,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤同廉,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后柑司,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迫肖,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年攒驰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蟆湖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡玻粪,死狀恐怖隅津,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情劲室,我是刑警寧澤伦仍,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站很洋,受9級(jí)特大地震影響充蓝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一谓苟、第九天 我趴在偏房一處隱蔽的房頂上張望官脓。 院中可真熱鬧,春花似錦娜谊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至芭商,卻和暖如春派草,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铛楣。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工近迁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人簸州。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓鉴竭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親岸浑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子搏存,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353