题目描述: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。要求空间复杂度为$O(1)$ 题解: 方案一使用环状替换: 如果我们直接把每一个数字放到它最后的位置,但这样的后果是遗失原来的元素。因此,我们需要把被替换的数字保存在变量$temp$里面。然后,我们将被替换数字($te ...
分类:
编程语言 时间:
2020-04-30 11:59:43
阅读次数:
66
题目描述:一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 今日学习内容: 1.复习indexOf()和lastIndexOf() 2.学习reduce的用法 3.学习ES6新特性:Set() 4.学 ...
分类:
编程语言 时间:
2020-04-28 22:53:54
阅读次数:
55
面试题56 I. 数组中数字出现的次数 一个整型数组 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1: 示例 2: 限制: `2 using namespace std; int main() { vector ...
分类:
编程语言 时间:
2020-04-28 17:09:49
阅读次数:
42
一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1: 示例 2: 限制: 2 <= nums <= 10000 思路: 1.先将数组中的全部数异或,最后得到的xor,就是num1和num2异或 ...
分类:
编程语言 时间:
2020-04-28 00:31:52
阅读次数:
52
总时间限制: 1000ms 内存限制: 65535kB 描述 编写算法,在一个非递减有序的顺序表中删除所有值相等的多余的元素。要求时间复杂度为O(n),空间复杂度为O(1)。 输入 两行,第一行为数据元素的个数n,第二行为n个元素,n10 1 1 1 2 2 3 3 3 4 5 样例输出 1 1 2 ...
分类:
其他好文 时间:
2020-04-26 18:52:39
阅读次数:
162
你对本章内容的小结: 这章讲了栈和队列的定义和应用和他们相关的一些操作 还有递归的基本操作 递归和迭代是完全不一样的方法 每个方法都有自己的优越性 迭代时间复杂度和空间复杂度很少 比递归少 但是递归的代码简洁 可以从最小的子问题来考虑终止调节再加上循环的调节即可 递归的里面容易出现重子问题 可以dp ...
分类:
其他好文 时间:
2020-04-26 17:09:12
阅读次数:
51
题目地址 "https://leetcode cn.com/problems/symmetric tree/" 1.递归 本题最简单的思路是递归,可以假设两棵一模一样的树在进行镜像对比。他们之间的关系满足 且`node1.right == node2.left` 时间复杂度O(n) n为节点的个数; ...
分类:
其他好文 时间:
2020-04-25 12:31:45
阅读次数:
53
算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。 那么我们应该如何去衡量不同算法之间的优劣呢? 主要还是从算法所占用的「时间」和「空间」两个维度去考量。 时间维度:是指执行当前 ...
分类:
编程语言 时间:
2020-04-24 14:40:29
阅读次数:
86
题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+ ...
分类:
其他好文 时间:
2020-04-23 16:19:08
阅读次数:
58
算法 第八章 Morris遍历/搜索二叉树/跳表等(完结) Morris遍历 + Morris遍历实现二叉树的先中后序遍历,时间复杂度O(n), 额外空间复杂度O(1) + 如果使用递归/非递归版本都是使用栈来完成二叉树遍历,因为只有指向子指针没有指向父指针,有额外的栈空间。 + Morris遍历实 ...
分类:
编程语言 时间:
2020-04-21 18:52:39
阅读次数:
92