摘要:
O(k)空间O(k2)时间 阅读全文
摘要:
使用归并排序和快速排序:时间复杂度为O(nlogn),快排132ms,归并880ms,stl 的sort() 80ms 考虑到负数,最大值有两种情况:两个负数一个正数相乘,或者三个正数相乘,取两个的最大值 阅读全文
摘要:
暴力解法:O(n2)使用循环或者递归的方式求解, 我的C++代码:O(n),对于第i次计算,每次记录最大值与当前元素乘积,所有不为0的数到当前元素乘积,从第一个负数的后一个元素到当前元素的乘积,以及当前元素,从这四个可能的值里挑出最大的值即为以当前下标结尾的最大乘积的连续子序列; 动态规划更规范的写 阅读全文
摘要:
/* 1.hashtable 把每个字符串都放到hashtable中 a.排序 长度不同,长的放在前面,长度相同,字典序小的放在前面 b.不排序 遍历数组,对于每个字符串判断它的所有前缀是否都在hashtable中,如果排序的话,满足条件就返回; 不排序的话,需要遍历所有,比较长度和字典序 2.tr 阅读全文
摘要:
二维数组动态规划,还可以采用一维数组进行动态规划。 阅读全文
摘要:
只用一维数组: O(mn)time O(mn) space 阅读全文
摘要:
可以参考:cs231n assignment1 SVM 完整代码 231n作业 多类 SVM 的损失函数及其梯度计算(最好)https://blog.csdn.net/NODIECANFLY/article/details/82927119 (也不错) 作业部分: 完成结构化SVM的损失梯度的理论计 阅读全文
摘要:
方法一:回溯法(用递归) 最基本可以将triangle数组看做一个邻接矩阵的变形,采用深度优先搜索的方法自顶向下遍历,如果triangle数组长度为n那么时间复杂度为O(2^n)(或者如果元素个数为N,那么复杂度N(log(N)) 方法二:动态规划 自底向上递推:可以使用一维数组来完成,从而O(n) 阅读全文