题解:两重循环,内层循环求阶乘的值,外层求和。 时间复杂度 O(n^2) 空间复杂度 O(n) #include <bits/stdc++.h> using namespace std; typedef long long ll; ll ans,n; int main() { std::ios::s ...
分类:
其他好文 时间:
2020-02-03 09:36:16
阅读次数:
154
题目 在?O(n?log?n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1: 输入: 4 2 1 3 输出: 1 2 3 4 示例 2: 输入: 1 5 3 4 0 输出: 1 0 3 4 5 来源:力扣(LeetCode) 链接:https://leetcode cn.com/pr ...
分类:
编程语言 时间:
2020-02-02 23:45:38
阅读次数:
106
算法的评估 对于一个问题,经常有多种不同的求解算法,这时候我们就需要一个对算法进行评估的标准,找出最优的方案,评估一个算法有以下几个维度: 正确性:能正确的实现功能,满足问题的需求。 易读性:通常,写出一个利与人类阅读的代码和利于机器阅读的代码一样重要 健壮性:对于预料之外的输入,也能做出合适的处理 ...
分类:
编程语言 时间:
2020-02-02 13:38:38
阅读次数:
151
这是labuladong的文章总结。 这是一题经典的DP问题,DP的框架为首先思考这个问题有什么状态,有哪些选择,最后根据情况穷举所有可行解。 这题的状态即为当前拥有的鸡蛋数k以及当前所在的楼层数n。选择是我们选择去哪一层楼扔鸡蛋。由状态和选择我们可以得到相对应的转移方程(因为有两个状态,鸡蛋数以及 ...
分类:
编程语言 时间:
2020-02-01 12:34:35
阅读次数:
99
面试题56:数组中数字出现的次数 题目描述 问题(1)数组中只出现一次的两个数字 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 问题(2)数组中唯一只出现一次的数字 在一个数组中除了一个数字只出现一次之外 ...
分类:
编程语言 时间:
2020-01-31 22:36:08
阅读次数:
60
验证二叉搜索树。题目即是题意。二叉搜索树的特性是对于每个node而言,他的左子树上任意节点都比他自身小,右子树上任意节点都比他自身大。这个题也是有两种做法,迭代和递归。时间空间复杂度都是O(n)。例子, Example 1: 2 / \ 1 3 Input: [2,1,3] Output: true ...
分类:
其他好文 时间:
2020-01-31 10:43:30
阅读次数:
66
[toc] 前言 传统意义上的背包是有一些众所周知的定义和判断性质的 有$n$件物品,每件物品有价值、体积、数量(1个、无限、规定数量)等属性(一般就是这三个),彼此可能存在依赖或排斥,现在要把它们尽量放入一个容积为$m$的背包里,问获得的最大价值 然后主要分为01背包、完全背包、多重背包等(比如还 ...
分类:
其他好文 时间:
2020-01-29 23:20:07
阅读次数:
91
这题 要求常熟空间复杂度有点难,所以只要求 O(n)好了 这题用了hashTable (字典) 有个结构可以学: 如果存在,则取出元素,如果不存在,则添加 try: hashTable.pop(num) except: hashTable[num] = 1 ...
分类:
其他好文 时间:
2020-01-26 17:50:02
阅读次数:
74
链表又来了,可见ListNode 这个数据结构出现之频繁。 本题求解链表中是否存在环路,让我去看看题解怎么区分环路。 盲猜双指针法 两种方法: 1.set,比用List快很多 2.快慢指针 知识点: 1.链表中假定所有元素都不重复,所以只要出现重复元素就说明有循环 空间复杂度>O(1) 1.因为 之 ...
分类:
其他好文 时间:
2020-01-26 17:36:01
阅读次数:
59
剑指OFFER 反转链表 分析 在原来的链表上进行反转空间复杂度O(1),稍加思考可知道最少需要三个指针,那么先处理常规的情况(结点数大于等于3个),其中该情况又要分别处理头中尾三种情况 最后慢慢处理特殊情况(结点数1个,结点数2个),然后写出代码 总结 头脑要保持清醒,指针不要弄混了 ...
分类:
其他好文 时间:
2020-01-26 10:21:43
阅读次数:
59