lintcode:Wiggle Sort
摘要:Wiggle Sort Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= nums[2] <= nums[3].... Given an unsorted array nums, reo
阅读全文
lintcode:单词切分
摘要:单词切分 给出一个字符串s和一个词典,判断字符串s是否可以被空格切分成一个或多个出现在字典中的单词。 样例 s = "lintcode" dict = ["lint","code"] 返回 true 因为"lintcode"可以被空格切分成"lint code" 解题 DFS if((s==null
阅读全文
lintcode:排颜色 II
摘要:给定一个有n个对象(包括k种不同的颜色,并按照1到k进行编号)的数组,将对象进行分类使相同颜色的对象相邻,并按照1,2,...k的顺序进行排序。 样例 给出colors=[3, 2, 2, 1, 4],k=4, 你的代码应该在原地操作使得数组变成[1, 2, 2, 3, 4] 解题 直接快排 标记法
阅读全文
lintcode: 最长连续序列
摘要:给定一个未排序的整数数组,找出最长连续序列的长度。 说明 要求你的算法复杂度为O(n) 样例 给出数组[100, 4, 200, 1, 3, 2],这个最长的连续序列是 [1, 2, 3, 4],返回所求长度 4 解题 排序后比较简单,快排O(nlogn) 后面只需要O(n)的时间复杂度求解了 发现
阅读全文
lintcode:颜色分类
摘要:给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。 我们可以使用整数 0,1 和 2 分别代表红,白,蓝。 样例 给你数组 [1, 0, 1, 2], 需要将该数组原地排序为 [0, 1, 1, 2] 解题 暴力:两次快排 、扫描数组
阅读全文
lintcode: 堆化
摘要:给出一个整数数组,堆化操作就是把它变成一个最小堆数组。 对于堆数组A,A[0]是堆的根,并对于每个A[i],A [i * 2 + 1]是A[i]的左儿子并且A[i * 2 + 2]是A[i]的右儿子。 什么是堆? 什么是堆化? 如果有很多种堆化的结果? 给出 [3,2,1,4,5],返回[1,2,3
阅读全文
lintcode: 旋转图像
摘要:给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。 解题 顺时针旋转90度 就是 上下翻转,再主对角对折
阅读全文
lintcode: 寻找旋转排序数组中的最小值
摘要:假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。 你需要找到其中最小的元素。 你可以假设数组中不存在重复的元素。 解题 可以线性查找 ,逆序后的数组 两个升序的数组,前面的数组元素都比后面数组元素大 数组降序的时候后面的数就是答案了
阅读全文
lintcode: 跳跃游戏 II
摘要:给出一个非负整数数组,你最初定位在数组的第一个位置。 数组中的每个元素代表你在那个位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 样例 给出数组A = [2,3,1,1,4],最少到达数组最后一个位置的跳跃次数是2(从数组下标0跳一步到数组下标1,然后跳3步到数组的最
阅读全文
lintcode:最小差
摘要:给定两个整数数组(第一个是数组 A,第二个是数组 B),在数组 A 中取 A[i],数组 B 中取 B[j],A[i] 和 B[j]两者的差越小越好(|A[i] - B[j]|)。返回最小差。 给定数组 A = [3,4,6,7], B = [2,3,8,9],返回 0。 解题 暴力91%数据时候超
阅读全文
lintcode:寻找旋转排序数组中的最小值 II
摘要:假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。 你需要找到其中最小的元素。 数组中可能存在重复的元素。 解题 暴力直接线性查找 或者,线性找到第一个开始降序的位置对应的数 应该考虑二分法 递归 + 二分 二分
阅读全文
lintcode:线段树的修改
摘要:线段树的修改 对于一棵 最大线段树, 每个节点包含一个额外的 max 属性,用于存储该节点所代表区间的最大值。 设计一个 modify 的方法,接受三个参数 root、 index 和 value。该方法将 root 为跟的线段树中 [start, end] = [index, index] 的节点
阅读全文
lintcode:线段树的查询
摘要:线段树的查询 对于一个有n个数的整数数组,在对应的线段树中, 根节点所代表的区间为0-n-1, 每个节点有一个额外的属性max,值为该节点所代表的数组区间start到end内的最大值。 为SegmentTree设计一个 query 的方法,接受3个参数root, start和end,线段树root所
阅读全文
lintcode:线段树的构造
摘要:线段树的构造 线段树是一棵二叉树,他的每个节点包含了两个额外的属性start和end用于表示该节点所代表的区间。start和end都是整数,并按照如下的方式赋值: 根节点的 start 和 end 由 build 方法所给出。 对于节点 A 的左儿子,有 start=A.left, end=(A.l
阅读全文
lintcode:Pow(x, n)
摘要:Pow(x, n) Implement pow(x, n). 解题 直接顺序求解,时间复杂度O(N) public class Solution { /** * @param x the base number * @param n the power number * @return the re
阅读全文
lintcode:装最多水的容器
摘要:装最多水的容器 给定 n 个非负整数 a1, a2, ..., an, 每个数代表了坐标中的一个点 (i, ai)。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)和(i, 0)。找到两条线,使得其与 x 轴共同构成一个容器,以容纳最多水。 解题 不理解题意 通俗的说 在上面n个点中
阅读全文
lintcode:带环链表
摘要:带环链表 给定一个链表,判断它是否有环。 解题 定义两个指针p1 p2 p1每次向前走一步 p2每次向前走两步 当p2能赶上p1的时候说明有环 /** * Definition for ListNode. * public class ListNode { * int val; * ListNode
阅读全文
lintcode:接雨水
摘要:接雨水 给出 n 个非负整数,代表一张X轴上每个区域宽度为 1 的海拔图, 计算这个海拔图最多能接住多少(面积)雨水。 如上图所示,海拔分别为 [0,1,0,2,1,0,1,3,2,1,2,1], 返回 6. 解题 先遍历一遍找到最高点,然后分别从两边开始,往最高点所在位置遍历,水位只会增高不会减小
阅读全文
lintcode: 最长无重复字符的子串
摘要:题目 最长无重复字符的子串给定一个字符串,请找出其中无重复字符的最长子字符串。 例如,在"abcabcbb"中,其无重复字符的最长子字符串是"abc",其长度为 3。 对于,"bbbbb",其无重复字符的最长子字符串为"b",长度为1。 解题 利用HashMap,map中不存在就一直加入,存在的时候
阅读全文
lintcode :同构字符串
摘要:Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the characters in s can be replaced to get t. All occurrenc
阅读全文
|
|
|