Install
Mac 环境下的安装
1
|
|
Mac 环境下的安装
1
|
|
拓扑排序在此题不适合的原因,因为会存在多个入度为 0 的节点,可能出现选取的并不是最优解的情况。
举例: [ [ 1, 4] [3, 4] [ 2, 5] [4, 5] [ 4, 6] [ 5, 6]] K = 2
当第一次选取的为 1,2 时,并不是最优解 必须选取 1, 3 或者 2,4 才可
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
主要在于每次通过数组 arr 中的值,进行将 “0“ 变为 ”1“,从而寻找出现连续的 1 值,问题就在于如何记录此时所出现的连续的 “1” 的字符串的长度。 (注意,这里不能再去循环遍历,肯定会超时。)
n 表示数组的长度
具体链接: https://leetcode-cn.com/problems/number-of-subsequences-that-satisfy-the-given-sum-condition/
因题意中,不要求数组的连续,只需要求相应的组合即可。
所以,这里可以先进行数组的排序。 遍历当前的数组,以当前数为基准,求 target - nums[i] 的值,在数组中,所处于的 Index 值。(可通过 bisect.bisect 的二分求解来得到此值。)
当得到此 index 值,以包含当前 nums[i] ,来求一个可以的组合数。其选择的方案为从 i + 1
至 index
的数,可选或者不选,一共的组合数为:
这一题在周赛花费了不少时间,做题时用了个代码比较长的 dp 方案
动态规划
定义一个 n * 2 的二维数组。 dp[i][0] 表示当前以 i 为结尾的子数组和为偶数的方法数 dp[i][1] 表示当前以 i 为结尾的子数组和为奇数的方法数
具体针对自己的服务器,参照 Overview of Docker editions | Docker Documentation 选择对应的版本进行安装
Android: Webkit 的 JavaScriptCore ios: 自带的 javascriptcore
在 Android 的代码,其提供了一个 CatalystInstance 的接口,来做 JS 与 Native 的高度抽象的接口:
关于内存分析,在 LeakCanary 之前,可以用到的工具主要以 MAT 为主,在新版的 AS 3.0 中,又提供了 Memory Profiler,可进一步帮助我们定位内存出现的问题。
DSL(domain-specific language),特定领域语言。wiki 关于 DSL 的定义如下: