编程题
Terry_dong
我只是个搬运工
展开
-
哈希表(散列表)原理详解
什么是哈希表? 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 记录的存储位置=f(关键字) 这里的对应关系f称为散列函数,又称为哈希(Hash函数),采用散列技术将记录存储在一块连续的存储空间中,这块...原创 2020-02-11 10:38:33 · 738 阅读 · 0 评论 -
左神课堂开始
这些都是左神(左程云)课堂里讲的例子,写下自己的理解。 1、已知一个字符串都是由左括号(和右括号)组成,判断该字符串是否是有效的括号组合。 例子: 有效的括号组合:()()(())(()()) 无效的括号组合:(())(()()(() 这题比较简单, 1,可以先定义一个状态 int status ==0 ,当遇到“)”这个状态就改变:--statu原创 2017-07-24 18:34:22 · 2101 阅读 · 0 评论 -
题目二:给定一个数组,值全是正数,请返回累加和为给定值k的最长子数组长度。
import java.util.Arrays; /** * 1,给定一个数组,值全是正数,请返回累加和为给定值k的最长子数组长度。 * 思路: * 可以用两个指针记录下该区间值的和, * a,如大于k则移动左指针。 * b,如果小于K则移动右指针 * c,如果等于k则移动左指针。 左,右指针都是向右滑动的。 * * @author lenovo * */ public原创 2017-07-29 22:01:01 · 953 阅读 · 0 评论 -
题目三:给定一个数组,值可以为正、负和0,请返回累加和为给定值k的最长子数组长度。
import java.util.HashMap; /** * * 2、给定一个数组,值可以为正、负和0,请返回累加和为给定值k的最长子数组长度。 * 咱们可以反推,比如:1- 100,数组和为1000. * 要求最长和为300的子数组,我可以反着求第一次出现和700的子数组,因为是第一次那必须是最短的长度。 * 这样反过来,剩下的 300 必须是最长的子数组。 *原创 2017-07-29 22:03:20 · 1505 阅读 · 0 评论 -
题目四:给定一个数组,值可以为正、负和0,请返回累加和小于等于k的最长子数组长度。 时间复杂度:O(n)
import java.util.HashMap; /** * * 3、给定一个数组,值可以为正、负和0,请返回累加和小于等于k的最长子数组长度。 时间复杂度:O(n) * * 这里需要分为两步,第一步是获取,以每个位置开头最小和的长度。第二步,从0到N逐一判断刚才最小长度是否可以合并在一起达到小于等于k的效果。 * * 第一步: 获取以每个位置开头的最小和原创 2017-07-29 23:06:34 · 1362 阅读 · 0 评论