
算法
前缀和 概念与区间和
sumRange(left,right)=nums[left]+nums[left+1]+⋯+nums[right] = prefix[right+1]-prefix[left] 公式成立的原理就是 **前缀和的抵消**: 前缀和保存的是 **从头到某个位置的和**,两个前缀和相减,刚好抵消掉前面不需要的部分,留下的就是区间和。
LeetCode 303 区域和检索 - 数组不可变
标签:设计、数组、前缀和 给定一个整数数组 `nums`,处理以下类型的多个查询: 1. 计算索引 `left` 和 `right` (包含 `left` 和 `right`)之间的 `nums` 元素的 **和** ,其中 `left <= right` 实现 `NumArray` 类: - `NumArray(int[] nums)` 使用数组...
LeetCode 011 盛最多水的容器
给定一个长度为 `n` 的证书数组 `height`。有 `n` 条垂线,第 `i` 条线的两个端点是`(i, 0)`和`(i, height)`。 找出其中的两条线,是的他们与 `x` 轴共同构成的容器可以容纳最多的水。 返回容器可以存储的最大水量。 **说明**:你不能倾斜容器。
LeetCode 015 三数之和
标签:数组、双指针、排序 给你一个整数数组 `nums`,判断是否存在三元组 `[nums[i], nums[j], nums[k]]`满足 `i != j`、`i != k` 且 `j != k`,同时还满足 `nums[i] + nums[j] + nums[k] == 0`。请你返回所有和为 `0` 且不重复的三元组。...
LeetCode 283 移动零
给定一个数组 `nums`,编写一个函数将所有 `0` 移动到数组末尾,同时保持非零元素的相对顺序。 **请注意**,必须在不复制数组的情况下原地对数组进行操作。
LeetCode 128 最长连续序列
给定一个未排序的整数数组 `nums`,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 0(n) 的算法解决此问题。
LeetCode 049 字母异位分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回列表。 示例1: 输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]
LeetCode 001 两数之和
知识点:数组、哈希表 给定一个整数数组 `nums` 和一个整数目标值 `target`,请你再该数组中找出 **和为目标值** `target` 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次想同的元素。 你可以按任意顺序返回答案。
递归与分治
递归算法:直接或间接地调用自身的算法。 递归函数:用函数自身给出定义的函数。
HJ21 简单密码
现在有一种密码变换算法。 九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9. 而密码中出现的大写字母则变成小写之后往后移一位,如:X...
HJ质数因子
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 ) 数据范围:1≤n≤2×10^9^+14
HJ成绩排序
给定一些同学的信息(名字,成绩)序列,请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。
HJ字符串排序
给定 n 个字符串,请对 n 个字符串按照字典序排列。 数据范围:1≤n≤1000 ,字符串长度满足1≤len≤100
HJ整数与IP地址间的转换
描述 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个长整数。 举例:一个ip地址为10.0.3.193
删除字符串中出现次数最少的字符
实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。 数据范围:输入的字符串长度满足1≤n≤20,保证输入的字符串中仅出现小写字母
字符个数统计
描述 编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内(0~127,包括0和127),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次 例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出3。
HJ明明的随机数
明明生成了NN个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。 数据范围: 1≤n≤1000,输入的数字大小满足500≤val≤500
HJ进制转换
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。 数据范围:保证结果在 1≤n≤2^31^-1
- « 上一页
- 1
- 下一页 »