算法(数组篇简单篇2思路)

  1. 存在重复元素
    判断是否存在重复元素
    思路一,死做,时间O(n^2),空间O(1)
    思路二,快排,再两两比较,时间O(nlogn),空间O(1)
    思路三,哈希表,时间O(n),空间O(n)

  2. 只出现一次的数字
    除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
    思路一,死做,加两层循环
    思路二:哈希表,字典
    思路三:异或运算,时间O(n),空间O(1)

  3. 买卖股票的最佳时机 II
    思路一:计算得到每个峰谷和峰顶,相减即是利润
    思路二:简单地一次遍历,如果nums[i] > nums[i-1],即有利润。

  4. 两个数组的交集 II
    连环三问:
    如果给定的数组已经排好序呢?你将如何优化你的算法?
    排好序,则通过比较排序,得出交集,时间O(m+n),空间O(1)。

如果 nums1 的大小比 nums2 小很多,哪种方法更优?
小很多,用哈希表,因为空间O(min(m,n)),空间复杂度省下了,时间O(m+n)。

如果 nums2 的元素存储在磁盘上,磁盘内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?
无法一次性加载,用归并排序,将元素分割成一些小块,排序完再合并。

  1. 两数之和
    思路一:两层循环,时间O(n^2),空间O(1)
    思路二:哈希表,第一次添加元素,第二遍寻找,时间O(n),空间O(n),或者边添加边查找

加入排序数组,就有另外的文章可做

  1. 旋转图像
    转置加镜像,转置和镜像都是两两元素互换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值