摘要:
思路:nums为给定的数组,动态规划: 设 一维数组:dp[i] 表示 以第i个元素为结尾的一段最大子序和。 1)若dp[i-1]小于0,则dp[i]加上前面的任意长度的序列和都会小于nums[i],则 dp[i] = nums[i]; 2) 若dp[i-1] 不小于0, 则 dp[i] = dp[ 阅读全文
摘要:
题意:s是空串或包含a-z字母; p为包含a-z字母或?或 * (其中*可以匹配任意字符串包括空串,?可以匹配任意字符)。 思路: 1)特殊情况:当s为空串时,p为连续 * 时,则连续 * 的位置都为true。 2)若p的第j个字符为 * ,分两种情况: a) 若p中的前 j-1个字符和 s 中的前 阅读全文
摘要:
注意:autokeras只适用于python3.6 先打开命令行(cmd), 输入 python --version 查看python版本,是否需要降级和升级。 降级的命令如下: 完成后,进行如下步骤: (一)安装PyTorch、Keras Auto-Keras依赖于PyTorch、Keras组件, 阅读全文
摘要:
求 n! 中0的个数。 思路:计算0的个数,也就是计算10的个数,即计算包含的2和5组成的pair的个数,因为5的个数比2少,所以2和5组成的pair的个数由5的个数决定。 观察15! = 有3个5(来自其中的5, 10, 15), 所以计算15/5=3就可以。 25! = 有6个5(有5个5来自其 阅读全文
摘要:
注意: 1)需要保证nums1 的长度比 nums2 的长度小;(否则vector指针会越界) 2) 当分割线(partition)在首或尾时,用INT_MIN 和 INT_MAX 代替。 思路: 阅读全文
摘要:
from scipy.special import comb n = int (input("n: ")) k = int (input("k: ")) sum1 = 0 for j in range(0, k): for i in range(0, n+1): sum1 = sum1 + (i** 阅读全文
摘要:
二叉树具有天然的递归结构。 1. 前序遍历 或这样写: 空是一颗二叉树。 2. 查找某个键值key 3. 删除二叉树 思路:DFS+递归 1)若当前结点若为空,则返回0; 2)若当前结点的左子树为空,则对右子树调用递归函数,并加1返回; 3)若当前结点的右子树为空,则对左子树调用递归函数,并加1返回 阅读全文
摘要:
典型可以使用优先队列的。 (小顶堆) 但是若k和n差不多大,方法二就比较耗时了。则方法三的优势就很明显了。 合并前的k个链表是有序的,最终合并后的链表也是有序的 使用优先队列(小顶堆),先将K个链表的首元素都加入最小堆中,然后每次取出最小的那个元素加入到最终的链表中。然后把取出元素的下一个元素再加入 阅读全文
摘要:
寻找队列中的最大值或最小值,出队。 优先队列的底层实现:堆;(对于堆的底层实现,面试时经常会出)。 C++中的优先队列容器:priority_queue 1. 默认从大到小排列:(最大堆) 2. 小顶堆 3. 自定义比较函数: 阅读全文
摘要:
在本题中,任何一个正整数都会由完全平方数1组成,所以不可能没有解。 贪心是不成立的,因为如果寻找12的完全平方数,使用贪心,则它由9,1,1,1四个数组成;但是最少的完全平方数是由三个4组成的。 4->3->2->1->0 之间相差1,这个完全平方数; 4->0 之间相差4,这个完全平方数。 127 阅读全文