lintcode-143-排颜色 II】的更多相关文章

排颜色 II 给定一个有n个对象(包括k种不同的颜色,并按照1到k进行编号)的数组,将对象进行分类使相同颜色的对象相邻,并按照1,2,...k的顺序进行排序. 样例 给出colors=[3, 2, 2, 1, 4],k=4, 你的代码应该在原地操作使得数组变成[1, 2, 2, 3, 4] 解题 直接快排 class Solution { /** * @param colors: A list of integer * @param k: An integer * @return: nothin…
143-排颜色 II 给定一个有n个对象(包括k种不同的颜色,并按照1到k进行编号)的数组,将对象进行分类使相同颜色的对象相邻,并按照1,2,...k的顺序进行排序. 注意事项 You are not suppose to use the library's sort function for this problem. k <= n 样例 给出colors=[3, 2, 2, 1, 4],k=4, 你的代码应该在原地操作使得数组变成[1, 2, 2, 3, 4] 挑战 一个相当直接的解决方案是…
问题描写叙述: 给一个数组,而且数组里面元素的值仅仅可能是0,1,2,然后如今把这个数组排序. 第二种表述: 现有n个红白蓝三种不同颜色的小球,乱序排列在一起,请通过两两交换随意两个球,使得从左至右,依次是一些红球.一些白球.一些蓝球. 解题思路: 採用高速排序partition的思想,用两个指针将三种颜色间隔开. 以下引用此处内容 July 编程艺术系列中荷兰国旗问题. 一个前指针begin,一个中指针current,一个后指针end,current指针遍历整个数组序列,当 current指针…
题目 打劫房屋II 在上次打劫完一条街道之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子围成了一个圈,这就意味着第一间房子和最后一间房子是挨着的.每个房子都存放着特定金额的钱.你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警. 给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下. 样例 给出nums = [3,6,4], 返回 6, 你不能打劫3和4所在的房…
数字组合 II 给出一组候选数字(C)和目标数字(T),找出C中所有的组合,使组合中数字的和为T.C中每个数字在每个组合中只能使用一次. 注意事项 所有的数字(包括目标数字)均为正整数. 元素组合(a1, a2, … , ak)必须是非降序(ie, a1 ≤ a2 ≤ … ≤ ak). 解集不能包含重复的组合. 样例 给出一个例子,候选数字集合为  , 解集为:[[1,7],[1,2,5],[2,6],[1,1,6]] 解题 和上一题的数字组合很类似,但是这一题是真正的组合问题 还是DFS的思想…
Wiggle Sort II Given an unsorted array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3].... 注意事项 You may assume all input has valid answer. 样例 Given nums = [1, 5, 1, 1, 6, 4], one possible answer is [1, 4, 1, 5, 1, 6]. Given nums…
题目 三数之和 II 给一个包含n个整数的数组S, 找到和与给定整数target最接近的三元组,返回这三个数的和. 样例 例如S = .  和最接近1的三元组是 -1 + 2 + 1 = 2. 注意 只需要返回三元组之和,无需返回三元组本身 解题 和上一题差不多,程序也只是稍微修改了 public class Solution { /** * @param numbers: Give an array numbers of n integer * @param target : An integ…
题目: 合并排序数组 II 合并两个排序的整数数组A和B变成一个新的数组. 样例 给出A = [1, 2, 3, empty, empty] B = [4,5] 合并之后A将变成[1,2,3,4,5] 注意 你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素. 解题: 这里给的是两个数组,上题给的是ArrayList格式,比较好处理,重新定义一个长度m+n的数组,但是A的数组长度是m+n,可以从后面将元素插入的A数组中 class Solution { /** * @pa…
spannableStringBuilder 用法详解: SpannableString ss = new SpannableString("红色打电话斜体删除线绿色下划线图片:.");           //用颜色标记文本         ss.setSpan(new ForegroundColorSpan(Color.RED), 0, 2,                   //setSpan时需要指定的 flag,Spanned.SPAN_EXCLUSIVE_EXCLUSIV…
290. Word Pattern istringstream 是将字符串变成字符串迭代器一样,将字符串流在依次拿出,比较好的是,它不会将空格作为流,这样就实现了字符串的空格切割. C++引入了ostringstream.istringstream.stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件. istringstream类用于执行C++风格的串流的输入操作. ostringstream类用于执行C风格的串流的输出操作. strstream类同时可以支持…
The structure of Segment Tree is a binary tree which each node has two attributes startand end denote an segment / interval. start and end are both integers, they should be assigned in following rules: The root's start and end is given bybuild method…
Given n x m non-negative integers representing an elevation map 2d where the area of each cell is 1 x 1, compute how much water it is able to trap after raining. Example Given 5*4 matrix [12,13,0,12] [13,4,13,12] [13,8,10,12] [12,13,12,12] [13,13,13,…
Given an integer array, find a continuous rotate subarray where the sum of numbers is the biggest. Your code should return the index of the first number and the index of the last number. (If their are duplicate answer, return anyone. The answer can b…
For an array, we can build a SegmentTree for it, each node stores an extra attribute count to denote the number of elements in the the array which value is between interval start and end. (The array may not fully filled by elements) Design a query me…
Merge two given sorted integer array A and B into a new sorted integer array. Example A=[1,2,3,4] B=[2,4,5,6] return [1,2,2,3,4,4,5,6] Challenge How can you optimize your algorithm if one array is very large and the other is very small? 没什么好说的,Arrayl…
A typical Union-Find one. I'm using a kinda Union-Find solution here. Some boiler-plate code - yeah I know. class Solution { unordered_set<int> hs; // start from 1 int max_k; public: void dfs(vector<vector<int>> &mt, int x, int y, in…
Idea is the same: climbing up the hill along one edge (Greedy)! Visualize it in your mind! class Solution { public: /** * @param A: An integer matrix * @return: The index of the peak */ vector<int> findPeakII(vector<vector<int> > A) { in…
最后更新 一刷 class Solution { public void sortColors2(int[] colors, int k) { // write your code here if (colors.length <= 1) return; int start = 0; int end = colors.length - 1; int min = 1; int max = k; while (start < end) { int temp = start; while (temp…
Half and Half 类型题 二分法的精髓在于判断目标值在前半区间还是后半区间,Half and Half类型难点在不能一次判断,可能需要一次以上的判断条件. Maximum Number in Mountain Sequence Given a mountain sequence of n integers which increase firstly and then decrease, find the mountain top. 样例  Given nums = [1, 2, 4,…
题意 给出两个单词(start和end)和一个字典,找出所有从start到end的最短转换序列 比如: 1.每次只能改变一个字母. 2.变换过程中的中间单词必须在字典中出现. 注意事项 所有单词具有相同的长度. 所有单词都只包含小写字母. 样例 给出数据如下: start = "hit" end = "cog" dict = ["hot","dot","dog","lot","…
描述:合并两个排序的整数数组A和B变成一个新的数组 样例:给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6] 1.Python:先将数组B加到数组A之后,然后对新数组进行排序 class Solution: """ @param A: sorted integer array A @param B: sorted integer array B @return: A new sorted integer array "&qu…
class Solution { public: /** * @param A: sorted integer array A which has m elements, * but size of A is m+n * @param B: sorted integer array B which has n elements * @return: void */ void mergeSortedArray(int A[], int m, int B[], int n) { // write y…
题目: Given a list of numbers that may has duplicate numbers, return all possible subsets Notice Each element in a subset must be in non-descending order. The ordering between two subsets is free. The solution set must not contain duplicate subsets. Ex…
题目: Follow up for N-Queens problem. Now, instead outputting board configurations, return the total number of distinct solutions. Example For n=4, there are 2 distinct solutions. 题解: Solution 1 () class Solution { public: void dfs(int &res, int n, vec…
最近开始刷lintcode,记录下自己的答案,数字即为lintcode题目号,语言为python3,坚持日拱一卒吧... (一). 回文字符窜问题(Palindrome problem) 627. Longest Palindrome 给出一个包含大小写字母的字符串.求出由这些字母构成的最长的回文串的长度是多少. 数据是大小写敏感的,也就是说,"Aa" 并不会被认为是一个回文串 输入 : s = "abccccdd" 输出 : 7 说明 : 一种可以构建出来的最长回…
1 - 从strStr谈面试技巧与代码风格 必做题: 13.字符串查找 要求:如题 思路:(自写AC)双重循环,内循环读完则成功 还可以用Rabin,KMP算法等 public int strStr(String source, String target) { if (source == null || target == null) { return -1; } char[] sources = source.toCharArray(); char[] targets = target.to…
Yet Another Source Code for LintCode Current Status : 232AC / 289ALL in Language C++, Up to date (2016-02-10) For more problems and solutions, you can see my LintCode repository. I'll keep updating for full summary and better solutions. See cnblogs t…
LintCode 83. Single Number II (Medium) LeetCode 137. Single Number II (Medium) 以下算法的复杂度都是: 时间复杂度: O(n) 空间复杂度: O(1) 解法1. 32个计数器 最简单的思路是用32个计数器, 满3复位0. class Solution { public: int singleNumberII(vector<int> &A) { int cnt[32] = {0}; int res = 0; f…
LintCode 197. Permutation Index (Easy) LintCode 198. Permutation Index II (Medium) 感觉这两道题主要考察计算排列组合的能力. Permutation Index 举例: 123 -> 1 132 -> 2 213 -> 3 231 -> 4 312 -> 5 321 -> 6 以321为例进行分析: 首先考虑第一位3: 3右边比3小的数字有两个(1和2), 所以以1和2为首位的数字排在3x…
渐变是CSS3中比较好玩的属性,学会了渐变,那么可以做出非常炫的东东哟.CSS3 中渐变——Gradient分为linear-gradient(线性渐变)和radial-gradient(径向渐变).下面就为大家详细介绍一下CSS3中渐变——Gradient. 一.Gradient语法   1.线性渐变的语法: 对象选择器 {background:-浏览器前缀-linear-gradient( 起点方向,起点颜色,终点颜色);} 2.径向渐变的语法: 对象选择器 {background:-浏览器…