房屋染色-LintCode

这里有n个房子在一列直线上,现在我们需要给房屋染色,分别有红色蓝色和绿色。每个房屋染不同的颜色费用也不同,你需要设计一种染色方案使得相邻的房屋颜色不同,并且费用最小。费用通过一个nx3 的矩阵给出,比如cost[0][0]表示房屋0染红色的费用,cost[1][2]表示房屋1染绿色的费用。注意事项...

2017-10-31 10:05:16

阅读数:119

评论数:0

栅栏染色-LintCode

我们有一个栅栏,它有n个柱子,现在要给柱子染色,有k种颜色可以染。 必须保证不存在超过2个相邻的柱子颜色相同,求有多少种染色方案。注意事项: n和k都是非负整数样例: n = 3, k = 2, return 6 post 1, post 2, post 3 way1 0...

2017-10-31 09:06:12

阅读数:98

评论数:0

完美平方-LintCode

给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, … )使得他们的和等于 n。你需要让平方数的个数最少。样例: 给出 n = 12, 返回 3 因为 12 = 4 + 4 + 4。 给出 n = 13, 返回 2 因为 13 = 4 + 9。思路: 动态规划,状态转换方程为: ...

2017-10-30 18:59:16

阅读数:83

评论数:0

解码方法-LintCode

有一个消息包含A-Z通过以下规则编码'A' -> 1 'B' -> 2 ... 'Z' -> 26现在给你一个加密过后的消息,问有几种解码的方式样例: 给你的消息为12,有两种方式解码 AB(12) 或者 L(12). 所以返回 2。思路: 动态规划,len为s的长度,取dp...

2017-10-30 18:55:51

阅读数:74

评论数:0

最大矩形-LintCode

给你一个二维矩阵,权值为False和True,找到一个最大的矩形,使得里面的值全部为True,输出它的面积样例: 给你一个矩阵如下[ [1, 1, 0, 0, 1], [0, 1, 0, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 1], [0,...

2017-10-30 10:23:35

阅读数:133

评论数:0

摆动排序-LintCode

给你一个没有排序的数组,请将原数组就地重新排列满足如下性质 nums[0] <= nums[1] >= nums[2] <= nums[3]….注意事项: 请就地排序数组,也就是不需要额外数组样例: 给出数组为 nums = [3, 5, 2, 1, 6, 4] 一种输出方...

2017-10-30 09:30:34

阅读数:90

评论数:0

摆动排序 II-LintCode

给你一个数组nums,将它重排列如下形式 nums[0] < nums[1] > nums[2] < nums[3]….注意事项: 你可以认为每个输入都有合法解样例: 给出 nums = [1, 5, 1, 1, 6, 4],一种方案为 [1, 4, 1, 5, 1, 6]...

2017-10-29 19:28:28

阅读数:145

评论数:0

交换链表当中两个节点-LintCode

给你一个链表以及两个权值v1和v2,交换链表中权值为v1和v2的这两个节点。保证链表中节点权值各不相同,如果没有找到对应节点,那么什么也不用做。注意事项: 你需要交换两个节点而不是改变节点的权值样例: 给出链表 1->2->3->4->null ,以及 v1 = 2 ,...

2017-10-27 09:34:40

阅读数:64

评论数:0

丑数-LintCode

写一个程序来检测一个整数是不是丑数。 丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数以为他包含了质因子 7。注意事项: 可以认为 1 是一个特殊的丑数。样例: 给出 num = 8,返回 true。 给出 num = 14,返回 fal...

2017-10-27 08:59:24

阅读数:74

评论数:0

玩具工厂-LintCode

工厂模式是一种常见的设计模式。请实现一个玩具工厂 ToyFactory 用来产生不同的玩具类。可以假设只有猫和狗两种玩具。样例ToyFactory tf = ToyFactory(); Toy toy = tf.getToy('Dog'); toy.talk(); >> Wowtoy...

2017-10-21 10:19:46

阅读数:1255

评论数:0

回文数-LintCode

判断一个正整数是不是回文数。 回文数的定义是,将这个数反转之后,得到的数仍然是同一个数。注意事项: 给的数一定保证是32位正整数,但是反转之后的数就未必了。样例: 11, 121, 1, 12321 这些是回文数。 23, 32, 1232 这些不是回文数。#ifndef C491_H #...

2017-10-21 09:56:30

阅读数:98

评论数:0

快乐数-LintCode

写一个算法来判断一个数是不是”快乐数”。一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。样例: 19 就是一个快乐数。1^2 + 9^2 = 82 8^...

2017-10-21 09:49:11

阅读数:85

评论数:0

二叉树的所有路径-LintCode

给一棵二叉树,找出从根节点到叶子节点的所有路径。样例: 给出下面这棵二叉树: 1 / \ 2 3 \ 5所有根到叶子的路径为:[ "1->2->5", "1->3" ]#ifndef C480_H #def...

2017-10-20 21:19:49

阅读数:82

评论数:0

被围绕的区域-LintCode

给一个二维的矩阵,包含 ‘X’ 和 ‘O’, 找到所有被 ‘X’ 围绕的区域,并用 ‘X’ 填充满。 样例: 给出二维矩阵: X X X X X O O X X X O X X O X X 把被 ‘X’ 围绕的区域填充之后变为: X X X X X X X X X X X X X...

2017-10-20 20:48:51

阅读数:128

评论数:0

单词的添加与查找-LintCode

设计一个包含下面两个操作的数据结构:addWord(word), search(word) addWord(word)会在数据结构中添加一个单词。而search(word)则支持普通的单词查询或是只包含.和a-z的简易正则表达式的查询。 一个 . 可以代表一个任何的字母。注意事项: 你可以假...

2017-10-20 18:41:46

阅读数:104

评论数:0

等价二叉树-LintCode

检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。样例: 1 1 / \ / \ 2 2 and 2 2 / / 4 ...

2017-10-20 14:36:23

阅读数:80

评论数:0

整数排序 II -LintCode

给一组整数,按照升序排序。使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法。样例: 给出 [3, 2, 1, 4, 5], 排序后的结果为 [1, 2, 3, 4, 5]。#ifndef C464_H #define C464_H #include<iostre...

2017-10-20 14:22:58

阅读数:79

评论数:0

经典二分查找问题-LintCode

在一个排序数组中找一个数,返回该数出现的任意位置,如果不存在,返回-1。样例: 给出数组 [1, 2, 2, 4, 5, 5]. 对于 target = 2, 返回 1 或者 2. 对于 target = 5, 返回 4 或者 5. 对于 target = 6, 返回 -1.挑战: O...

2017-10-20 09:07:06

阅读数:101

评论数:0

整数排序-LintCode

给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2n2) 的排序算法。样例: 对于数组 [3, 2, 1, 4, 5], 排序后为:[1, 2, 3, 4, 5]。#ifndef C463_H #define C463_H #include<iostream>...

2017-10-20 08:52:28

阅读数:79

评论数:0

和大于S的最小子数组-LintCode

给定一个由 n 个正整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ≥ s 的最小长度子数组。如果无解,则返回 -1。样例: 给定数组 [2,3,1,2,4,3] 和 s = 7, 子数组 [4,3] 是该条件下的最小长度子数组。挑战 : 如果你已经完成了O(n)时间复杂度的编程,请...

2017-10-19 20:54:28

阅读数:135

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭