编程基础
夕阳-晨曦
这个作者很懒,什么都没留下…
展开
-
《剑指offer》连续子数组的最大和
一、题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?二、输入描述一原创 2016-07-20 13:36:38 · 647 阅读 · 0 评论 -
<Sicily>Brackets Matching
一、题目描述Let us define a regular brackets sequence in the following way:Empty sequence is a regular sequence.If S is a regular sequence, then (S) , [S] and {S} are both regular sequences.If A and B are原创 2016-06-16 10:02:18 · 851 阅读 · 0 评论 -
<Sicily>Polynomial
一、题目描述Given a polynomial and the value of the variable x, you task is to calculate the value of the polynomial.二、输入The first line of the input is a positive integer T. T is the number of test cases fol原创 2016-06-16 00:10:35 · 766 阅读 · 0 评论 -
<Sicily>Pythagorean Proposition
一、题目描述One day, WXYZ got a wooden stick, he wanted to split it into three sticks and make a right-angled triangle. You will be given the length of the stick, and your task is to help WXYZ to find all di原创 2016-06-15 23:42:36 · 626 阅读 · 0 评论 -
<Sicily> 生成字符串
一、题目描述假设一个字符串只由字符‘0’,‘1’,‘?’组成,其中字符‘?’表示该字符可由字符‘0’或‘1’替代。现有一些字符串,根据这些字符串生成所有可生成的字符串。如:{10,?1,0? }可生成{10,01,11,00}{101,001,?01}可生成{101,001}注意后一个例子中‘?01’并没有生成新的字符串。二、输入输入包含多组测试数据。每组数据的第一行是两个整数M,N(1≤M≤15,原创 2016-06-15 23:21:15 · 1652 阅读 · 0 评论 -
《剑指offer》顺时针打印矩阵
一、题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.二、输入描述输入一个矩阵三、输出描述按顺时针的顺序依次打印出每一个数字例如: 输入: 1 2 3 4 5 6 7 8 9 10原创 2016-06-30 00:36:25 · 639 阅读 · 0 评论 -
《剑指offer》二叉树的镜像
一、题目描述操作给定的二叉树,将其变换为源二叉树的镜像。二、输入描述二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11三、输出描述镜像二叉树 8 / \ 10 6原创 2016-06-30 00:07:47 · 509 阅读 · 0 评论 -
《剑指offer》树的子结构
一、题目描述输入两颗二叉树A,B,判断B是不是A的子结构。二、输入描述输入两棵树A,B。三、输出描述判断B是不是A的子结构,是返回true,否则返回false。四、牛客网提供的框架/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) :原创 2016-06-29 23:39:19 · 417 阅读 · 0 评论 -
《剑指offer》合并两个排序的链表
一、题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。二、输入描述两个递增排序的链表三、输出描述合并成一个递增排序的链表四、牛客网提供的框架/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), nex原创 2016-06-29 16:30:41 · 525 阅读 · 0 评论 -
<Sicily>Threecolor problem
一、题目描述有红黄蓝3种颜色的n个珠子,师傅希望悟空把它们排成红色珠子在左,黄色珠子居中,蓝色珠子在右的一行,然后告诉师傅,从左数起,第m个珠子是什么颜色。众所周知,悟空是只猴子,他没有这个耐心,你帮帮他吧。二、输入输入第一行为一个整数t(0三、输出为每个测试用例单独一行输出指定的珠子颜色。 例如: 输入: 2 3 1 bry 4 3 rbyb 输出: r b四、解题思路这道原创 2016-06-13 23:21:35 · 820 阅读 · 0 评论 -
<Sicily>Catch the thief
一、题目描述A thief has robbed a bank in city 1 and he wants to go to city N. The police know that the thief will choose the shortest path to get to his destination. As there may be multiple shortest paths,原创 2016-06-16 13:23:17 · 975 阅读 · 0 评论 -
<Sicily>Inversion Number(线段树求逆序数)
一、题目描述There is a permutation P with n integers from 1 to n. You have to calculate its inversion number, which is the number of pairs of Pi and Pj satisfying the following conditions: iPj. 二、输入The input原创 2016-06-16 17:03:10 · 721 阅读 · 0 评论 -
《剑指offer》包含min函数的栈
一、题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。二、输入描述输入栈三、输出描述最小值四、牛客网提供的框架class Solution {public: void push(int value) { } void pop() { } int top() { } int min() { }};五、解题思路入栈、原创 2016-07-15 15:02:49 · 477 阅读 · 0 评论 -
《剑指offer》最小的K个数
一、题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,二、输入描述输入给整数数组,和K三、输出描述找出其中最小的K个数四、牛客网提供的框架class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {原创 2016-07-19 20:46:24 · 516 阅读 · 0 评论 -
《剑指offer》数组中出现次数超过一半的数字
一、题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。二、输入描述输入一个数组三、输出描述超过数组长度的一半的数,如果没有输出0四、牛客网提供的框架class Solution {public: int MoreThanHa原创 2016-07-19 20:43:06 · 448 阅读 · 0 评论 -
《剑指offer》字符串的排列
一、题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出二、输入描述输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。三、输出描述所能排列出来的所有字符串。结果请按字母顺序输出四、牛客网提供的框架class Solution {原创 2016-07-19 20:32:08 · 501 阅读 · 0 评论 -
《剑指offer》二叉搜索树与双向链表
一、题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向二、输入描述输入一棵二叉搜索树三、输出描述将该二叉搜索树转换成一个排序的双向链表四、牛客网提供的框架/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right;原创 2016-07-19 20:07:56 · 442 阅读 · 0 评论 -
《剑指offer》复杂链表的复制
一、题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)二、输入描述输入一个复杂链表三、输出描述返回复制复杂链表四、牛客网提供的框架/*struct RandomListNode { int label; stru原创 2016-07-19 20:00:41 · 712 阅读 · 2 评论 -
《剑指offer》二叉树中和为某一值的路径
一、题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。二、输入描述输入一颗二叉树和一个整数三、输出描述结点值的和为输入整数的所有路径注意: 路径的定义是:从树的根结点开始往下一直到叶结点所经过的结点形成一条路径四、牛客网提供的框架/*struct TreeNode { int val;原创 2016-07-19 17:16:37 · 490 阅读 · 0 评论 -
《剑指offer》二叉搜索树的后序遍历序列
一、题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。二、输入描述一个数组三、输出描述判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No四、牛客网提供的框架class Solution {public: bool VerifySquenceOfBST(vector<i原创 2016-07-15 15:57:32 · 510 阅读 · 0 评论 -
《剑指offer》从上往下打印二叉树
一、题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。二、输入描述一棵树三、输出描述输出层次遍历顺序四、牛客网提供的框架/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left原创 2016-07-15 15:30:29 · 410 阅读 · 0 评论 -
《剑指offer》栈的压入、弹出序列
一、题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)二、输入描述一个入栈的顺序,一个出栈的顺序。三、输出描述判断初栈是否满足该入栈序列的初栈序列原创 2016-07-15 15:19:07 · 491 阅读 · 0 评论 -
<Sicily>Prime Palindromes
一、题目描述The number 151 is a prime palindrome because it is both a prime number and a palindrome (it is the same number when read forward as backward). Write a program that finds all prime palindromes in原创 2016-06-13 22:52:08 · 854 阅读 · 0 评论 -
<Sicily>Greatest Common Divisors
一、题目描述A common divisor for two positive numbers is a number which both numbers are divisible by. It’s easy to calculate the greatest common divisor between tow numbers. But your teacher wants to give y原创 2016-06-13 23:13:00 · 799 阅读 · 0 评论 -
《剑指offer》反转链表
一、题目描述输入一个链表,反转链表后,输出链表的所有元素。二、输入描述输入一个链表三、输出描述返回逆转后的链表四、牛客网提供的框架/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Sol原创 2016-06-29 14:20:37 · 528 阅读 · 0 评论 -
<Sicily>Tiling a Grid With Dominoes
一、题目描述We wish to tile a grid 4 units high and N units long with rectangles (dominoes) 2 units by one unit (in either orientation). For example, the figure shows the five different ways that a grid 4 un原创 2016-06-09 16:53:20 · 1059 阅读 · 2 评论 -
<Sicily>Rails
一、题目描述There is a famous railway station in PopPush City. Country there is incredibly hilly. The station was built in last century. Unfortunately, funds were extremely limited that time. It was possible原创 2016-06-09 14:50:39 · 988 阅读 · 0 评论 -
<Sicily>数字反转
一、题目描述给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。二、输入输入共 1 行,一个整数N。-1,000,000,000 ≤ N≤ 1,000,000,000。三、输出输出共 1 行,一个整数,表示反转后的新数。例如: 输入:123 输出:321 输入:-380 输出:-83四、原创 2016-06-08 00:49:16 · 622 阅读 · 0 评论 -
<Sicily>Huffman coding
一、题目描述In computer science and information theory, a Huffman code is an optimal prefix code algorithm.In this exercise, please use Huffman coding to encode a given data.You should output the number of b原创 2016-06-08 00:33:37 · 1288 阅读 · 0 评论 -
<Sicily>Fibonacci 2
一、题目描述In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn-1 + Fn-2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequence are:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …Given an intege原创 2016-06-08 00:14:06 · 924 阅读 · 0 评论 -
<Sicily>Fibonacci
一、题目描述In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn-1 + Fn-2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequence are:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …Given an intege原创 2016-06-07 23:12:04 · 798 阅读 · 1 评论 -
《剑指offer》重建二叉树
一、题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,则重建二叉树并返回。二、输入描述输入一个树的前序和中序,例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}三、输出描述根据输入的前序和中序,重建一个该二叉树,并返回该树的根节点。四、牛客网提供的类框架/** * Def原创 2016-05-30 21:01:59 · 527 阅读 · 0 评论 -
《剑指offer》从尾到头打印链表
一、题目描述输入一个链表,从尾到头打印链表每个节点的值。 二、输入描述输入为链表的表头三、输出描述使用vector按链表从尾到头保存节点四、牛客网提供的类框架/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x原创 2016-05-30 17:34:04 · 369 阅读 · 0 评论 -
《剑指offer》字符串中的字符替换
一、题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。二、输入描述char *str :字符串 int length : 字符串的长度三、牛客网提供的类框架//length为牛客系统规定字符串输出的最大长度,固定为一个常数class Solution {public: voi原创 2016-05-30 17:17:36 · 616 阅读 · 0 评论 -
<Sicily>Pair
一、题目描述The N cities of Estiah are connected by N-1 roads. The roads are built in a way that it’s always possible to travel between any two cities.Now the king of Estiah wants to pair adjacent cities int原创 2016-06-09 23:03:19 · 1198 阅读 · 0 评论 -
<Sicily>Funny Game
一、题目描述Two players, Singa and Suny, play, starting with two natural numbers. Singa, the first player, subtracts any positive multiple of the lesser of the two numbers from the greater of the two numbers原创 2016-06-10 10:50:20 · 990 阅读 · 2 评论 -
<Sicily> Longest Common Subsequence
一、题目描述Given a sequence A = < a1, a2, …, am >, let sequence B = < b1, b2, …, bk > be a subsequence of A if there exists a strictly increasing sequence ( i1 < i2 < i3 …, ik ) of indices of A such that fo原创 2016-06-16 09:51:03 · 502 阅读 · 0 评论 -
《剑指offer》链表中倒数第k个结点
一、题目描述输入一个链表,输出该链表中倒数第k个结点。二、输入描述一个链表三、输出描述链表的倒数第k个结点四、牛客网提供的框架/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solut原创 2016-06-29 13:33:54 · 686 阅读 · 0 评论 -
《剑指offer》调整数组顺序使奇数位于偶数前面
一、题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。二、输入描述输入一个数组三、输出描述输出处理后的数组(所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变)四、牛客网提供的框架class Solution {public: vo原创 2016-06-29 11:30:55 · 570 阅读 · 0 评论 -
《剑指offer》数值的整数次方
一、题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。二、输入double base, int exponent三、输出base的exponent次方的值四、牛客网提供的框架class Solution {public: double Power(double base, int exponent) { }};五、原创 2016-06-28 15:13:13 · 315 阅读 · 0 评论