Yeefine 
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  •   
  •   

滚动数组

本文主要介绍一个十分实用的小技巧——滚动数组。它常被用来完成常数优化和减少代码量,且滚动数组思想是一种常见的动态规划优化方法。 假设有如下状态转移方程:             dp[i][j] = max(dp[i-1][j+1], dp[i-1][j-1]);​ 按照该状态转移

2020-07-06
数据结构与算法 总结

41.缺失的第一个正数

题目描述给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。 提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。 前言若不考虑时空复杂度,可以使用辅助空间记录出现的数字的方式实现,亦或者从1开始暴力比较每一个数组元素来实现。而按照题目中的要求,则需要尝试利用题目所给出的数组空间来协助完成。

2020-06-27
数据结构与算法 LeetCode
C++ 哈希 数组

5441.保证文件名唯一

题目描述给你一个长度为n的字符串数组names。你将会在文件系统中创建n个文件夹:在第i分钟,新建名为names[i]的文件夹。 由于两个文件不能共享相同的文件名,因此如果新建文件夹使用的文件名已经被占用,系统会以(k)的形式为新文件夹的文件名添加后缀,其中k是能保证文件名唯一的最小正整数。 返回长度为n的字符串数组,其中ans[i]是创建第i个文件夹时系统分配给该文件夹的实际名称。

2020-06-21
数据结构与算法 LeetCode
C++ 哈希

1014.最佳观光组合

题目描述给定正整数数组A,A[i]表示第i个观光景点的评分,并且两个景点i和j之间的距离为j-i。 一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。 返回一对观光景点能取得的最高分。

2020-06-17
数据结构与算法 LeetCode
C++ 动态规划

1477.找两个和为目标值且不重叠的子数组

题目描述给你一个整数数组arr和一个整数值target。 请你在arr中找两个互不重叠的子数组且它们的和都等于target。可能会有多种方案,请你返回满足要求的两个子数组长度和的最小值。 请返回满足要求的最小长度和,如多无法找到这样的两个子数组,请返回**-1**。

2020-06-15
数据结构与算法 LeetCode
C++ 哈希 动态规划 贪心算法

5437.不同整数的最少数目

题目描述给你一个整数数组arr和一个整数k。现需要从数组中恰好移除k个元素,请找出移除后数组中不同整数的最少数目。 思路与算法  首先根据题意,最终要得到不同整数的最少数目,说明我们所删除的k个元素要尽可能的互不相同,也就是说优先删除出现次数最少的元素。  根据上述思路,这里我们选择使用map来完成<数据, 出现次数>的存储。然后通过按照出现

2020-06-14
数据结构与算法 LeetCode
C++

70.爬楼梯

题目描述假设你正在爬楼梯。需要n阶才能达到楼顶。每次只能爬1阶或2阶。请问共有多少种不同的方法可以爬到楼顶?

2020-06-13
数据结构与算法 LeetCode
C++ 动态规划
1…345

搜索

Hexo Fluid
总访问量 次 总访客数 人