alighters

程序、写作、人生

1494. Parallel Courses II

| Comments

问题

拓扑排序在此题不适合的原因,因为会存在多个入度为 0 的节点,可能出现选取的并不是最优解的情况。

举例: [ [ 1, 4] [3, 4] [ 2, 5] [4, 5] [ 4, 6] [ 5, 6]] K = 2

当第一次选取的为 1,2 时,并不是最优解 必须选取 1, 3 或者 2,4 才可

891. Sum of Subsequence Width

| Comments

demo

1 -> 0 1, 2 -> 1 1, 2, 3 -> (多出4中组合,1 和 2 选或者不选)

多出的结果:(1, 3) (2, 3)(1,2, 3) 总和为 2 + 1 + 2 = 5 可看出选择 1 时的数目,取决于 1 到 3 之前的数目,取其 2 的幂数。(此种情况下, 2 1 = 2) 可得: 2 1 = 2 2 * (3 - 1) = 4
2 ** 0 = 1 1 * (3 - 2) = 1

1562. Find Latest Group of Size M

| Comments

思路

主要在于每次通过数组 arr 中的值,进行将 “0“ 变为 ”1“,从而寻找出现连续的 1 值,问题就在于如何记录此时所出现的连续的 “1” 的字符串的长度。 (注意,这里不能再去循环遍历,肯定会超时。)

前置

n 表示数组的长度

1498. Number of Subsequences That Satisfy the Given Sum Condition

| Comments

具体链接: https://leetcode-cn.com/problems/number-of-subsequences-that-satisfy-the-given-sum-condition/

思路

因题意中,不要求数组的连续,只需要求相应的组合即可。

所以,这里可以先进行数组的排序。 遍历当前的数组,以当前数为基准,求 target - nums[i] 的值,在数组中,所处于的 Index 值。(可通过 bisect.bisect 的二分求解来得到此值。)

当得到此 index 值,以包含当前 nums[i] ,来求一个可以的组合数。其选择的方案为从 i + 1index 的数,可选或者不选,一共的组合数为:

1524. Number of Sub-arrays With Odd Sum

| Comments

这一题在周赛花费了不少时间,做题时用了个代码比较长的 dp 方案

方案一

动态规划

定义动态方程

定义一个 n * 2 的二维数组。 dp[i][0] 表示当前以 i 为结尾的子数组和为偶数的方法数 dp[i][1] 表示当前以 i 为结尾的子数组和为奇数的方法数

RN 通信

| Comments

JS 桥

Android: Webkit 的 JavaScriptCore ios: 自带的 javascriptcore

在 Android 的代码,其提供了一个 CatalystInstance 的接口,来做 JS 与 Native 的高度抽象的接口:

LeakCanary 浅析

| Comments

内存分析工具

关于内存分析,在 LeakCanary 之前,可以用到的工具主要以 MAT 为主,在新版的 AS 3.0 中,又提供了 Memory Profiler,可进一步帮助我们定位内存出现的问题。