Loading

摘要: 滚动数组是DP中的一种编程思想。简单的理解就是让数组滚动起来,每次都使用固定的几个存储空间,来达到压缩,节省存储空间的作用。起到优化空间,主要应用在递推或动态规划中(如01背包问题)。因为DP题目是一个自底向上的扩展过程,我们常常需要用到的是连续的解,前面的解往往可以舍去。所以用滚动数组优化是很有效 阅读全文
posted @ 2020-03-02 20:30 RioTian 阅读(4422) 评论(0) 推荐(0)
摘要: 题目描述: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 head = [4,5,1,9],它可以表示为: 示例 1: 示例 2: 说明: 链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为非末尾节点并且一定是链表中的一个 阅读全文
posted @ 2020-03-02 20:16 RioTian 阅读(123) 评论(0) 推荐(0)
摘要: 前言 本文介绍如何使用STL里的heap(堆)算法。第一次接触heap这种数据结构是在大学的数据结构教材上,它是一棵完全二叉树。在STL中,heap是算法的形式提供给我们使用的。包括下面几个函数: : 根据指定的迭代器区间以及一个可选的比较函数,来创建一个heap. O(N) : 把指定区间的最后一 阅读全文
posted @ 2020-03-02 19:56 RioTian 阅读(117) 评论(0) 推荐(0)
摘要: 题目描述: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0 阅读全文
posted @ 2020-03-02 13:32 RioTian 阅读(170) 评论(0) 推荐(0)
摘要: 原题 分析 我在草纸上以1,2,3,41,2,3,4为例,将这个链表的转换过程先用描绘了出来(当然了,自己画的肯定不如博客上面精致) 上面用的是递归,下面就接着来看看如何把递归改写成迭代。他们的共同点无非就是都有值在不停的进行变换更迭,大家回顾一下上图会发现就是这里的 和`newHeadnewHea 阅读全文
posted @ 2020-03-02 13:01 RioTian 阅读(90) 评论(0) 推荐(0)
摘要: 什么是斐波那契查找 斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、····,在数学上,斐波那契被递归方法如下定义:F(1)=1,F(2)=1,F(n)=f(n 1)+F(n 2) (n =2)。该数列越往后相邻的两个数的比值越趋向于黄金比例值(0.618)。 阅读全文
posted @ 2020-03-02 11:37 RioTian 阅读(211) 评论(0) 推荐(0)