数组
crazy__chen
只要有一个人爱我,懂我,愿意等我,我便勇往直前,无所不能。
展开
-
剑指offer--构建乘积数组
题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法import java.util.ArrayList;public class Solution { int[] multiply(int[] A) { int[] B = n原创 2015-04-17 14:28:41 · 2794 阅读 · 0 评论 -
剑指offer--矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?public class Solution { public int RectCover(int target) { if(target==1) return 1; if(target==2) return 2; return原创 2015-04-10 21:45:29 · 1153 阅读 · 0 评论 -
剑指offer--变态跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分类:数组解法1:关于本题,前提是n个台阶会有一次n阶的跳法。分析如下: f(1) = 1 f(2) = f(2-1) + f(2-2) //f(2-2) 表示2阶一次跳2阶的次数。 f(3) = f(3-1) +原创 2015-09-19 20:32:50 · 2093 阅读 · 0 评论 -
剑指offer-跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 package test;public class Test3 { public int JumpFloor(int target) { if(target==1){ return 1; } int arr[] = new int[2]; arr[0] =原创 2015-04-10 21:27:28 · 782 阅读 · 0 评论 -
剑指offer--替换空格
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public class Solution { public String replaceSpace(StringBuffer str) { int spaceCount = 0; for(int i=0;i原创 2015-04-10 22:12:54 · 1108 阅读 · 1 评论 -
leetcode--Merge Intervals
Given a collection of intervals, merge all overlapping intervals.For example,Given [1,3],[2,6],[8,10],[15,18],return [1,6],[8,10],[15,18].题意:合并有交集的集合。分类:数组,排序解法1:根据题意,最简单的解法就是遍历,然后原创 2015-09-17 21:18:58 · 1098 阅读 · 0 评论 -
剑指offer--旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。import java.util.ArrayList;public class Solution { public int minNumberInRotateArray(int原创 2015-06-20 13:09:38 · 1297 阅读 · 0 评论 -
剑指offer-二维数组中的查找
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。package test;public class Test3 { public boolean Find(int [][] array,int target) { int h = array.le原创 2015-04-10 21:19:50 · 999 阅读 · 0 评论 -
leetcode--Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [−2,1,−3,4,−1,2,1,−5,4],the contiguous subarray [4,−1,2,1] has原创 2015-06-06 16:28:53 · 704 阅读 · 0 评论 -
leetcode--Search a 2D Matrix
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:Integers in each row are sorted from left to right.The first integer of each原创 2015-06-08 22:58:09 · 514 阅读 · 0 评论 -
leetcode--Rotate Image
ou are given an n x n 2D matrix representing an image.Rotate the image by 90 degrees (clockwise).Follow up:Could you do this in-place?public class Solution { public void rotate(int[][] mat原创 2015-06-06 15:55:21 · 539 阅读 · 0 评论 -
leetcode--Set Matrix Zeroes
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.click to show follow up.Follow up:Did you use extra space?A straight forward solution using O(mn) s原创 2015-06-08 15:47:54 · 658 阅读 · 0 评论 -
leetcode--Spiral Matrix II
Given an integer n, generate a square matrix filled with elements from 1 ton2 in spiral order.For example,Given n = 3,You should return the following matrix:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [原创 2015-06-07 17:13:52 · 589 阅读 · 0 评论 -
leetcode--Spiral Matrix
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.For example,Given the following matrix:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]You原创 2015-06-07 16:00:17 · 656 阅读 · 0 评论 -
leetcode--Word Search
Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically n原创 2015-06-09 12:14:13 · 837 阅读 · 0 评论 -
剑指offer--顺时针打印矩阵
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. import java.util.ArrayList;public class Solution { public Array原创 2015-04-11 18:59:05 · 886 阅读 · 0 评论 -
剑指offer--数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 public class Solution { public int MoreThanHalfNum_Solution(int [] array) { if(array.原创 2015-04-12 00:26:04 · 792 阅读 · 0 评论 -
剑指offer--数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。 public class Solution { // Parameters: // numbers:原创 2015-04-17 13:34:58 · 1034 阅读 · 0 评论 -
剑指offer--和为S的两个数字
题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。import java.util.ArrayList;public class Solution { public ArrayList FindNumbersWithSum(int []原创 2015-04-13 00:50:12 · 812 阅读 · 0 评论 -
剑指offer--孩子们的游戏(圆圈中最后剩下的数)
题目描述六一儿童节快要到了,牛妹为小伙伴们准备了一个小游戏,学会了可以将一堆小盆友驯(调)服(教)成功噢~ 第一步:你需要准备一堆小礼品,其中一份一定是所有小盆友都喜欢的,这个你懂哒~; 第二步:让小盆友们围成一个大圈,你随机指定一个数m,让编号为1的小盆友开始报数; 第三步:规定每次喊到m的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一原创 2015-04-18 20:06:19 · 8906 阅读 · 1 评论 -
剑指offer--扑克牌顺子
题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K原创 2015-04-19 16:49:45 · 1354 阅读 · 0 评论 -
剑指offer--连续子数组的最大和
题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住? publi原创 2015-04-12 12:50:39 · 960 阅读 · 0 评论 -
剑指offer--调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。类似选择排序public class Solution { public void reOrderArray(int [] array) { for(int i=1;i<array.leng原创 2015-04-11 12:09:45 · 673 阅读 · 0 评论 -
剑指offer--数组中的逆序对
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 public class Solution { public int InversePairs(int [] array) { if(array.length==0) return 0; if(array.length==1) return 0;原创 2015-04-19 01:26:44 · 1197 阅读 · 0 评论 -
剑指offer--数字在排序数组中出现的次数
题目描述统计一个数字在排序数组中出现的次数。 public class Solution { public int GetNumberOfK(int [] array , int k) { if(array.length==0) return 0; int low = 0; int high = array.length-1; int mid = (low+h原创 2015-04-12 19:17:10 · 685 阅读 · 0 评论 -
剑指offer--第一个只出现一次的字符
题目描述在一个字符串(1public class Solution { public int FirstNotRepeatingChar(String str) { if(str.length()==0) return -1; int arr[] = new int[26]; int mark = -1;原创 2015-04-12 16:59:52 · 1005 阅读 · 0 评论 -
剑指offer--最小的K个数
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。import java.util.ArrayList;public class Solution {public ArrayList GetLeastNumbers_Solution(int [] input, int k) { ArrayLis原创 2015-04-12 00:46:23 · 837 阅读 · 0 评论 -
剑指offer--和为S的连续正数序列
题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?Good Luck!输出描述:输出所有和为S的连续正数原创 2015-04-12 23:40:29 · 839 阅读 · 0 评论 -
剑指offer--数组中只出现一次的数字
题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。//num1,num2分别为长度为1的数组。传出参数//将num1[0],num2[0]设置为返回结果public class Solution { public void FindNumsAppearOnce(int [] array,int num1[] , int n原创 2015-04-12 20:13:33 · 747 阅读 · 0 评论 -
剑指offer--把数组排成最小的数
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 import java.util.ArrayList;public class Solution { public String PrintMinNumber(int [] numbers) {原创 2015-04-12 14:25:04 · 823 阅读 · 0 评论 -
剑指offer-丑数
题目描述把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。public class Solution { public int GetUglyNumber_Solution(int index) { if(index==0) ret原创 2015-04-12 16:41:08 · 861 阅读 · 0 评论 -
leetcode--Two Sum II - Input array is sorted
Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two number原创 2015-08-07 14:23:55 · 1497 阅读 · 0 评论 -
leetcode--Two Sum
Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add up to the target, where原创 2015-05-02 20:08:07 · 1105 阅读 · 0 评论 -
leetcode--Search in Rotated Sorted Array
Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).You are given a target value to search. If found in the array return its原创 2015-05-12 20:20:52 · 598 阅读 · 0 评论 -
leetcode--Search Insert Position
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.You may assume no duplicates in the array.原创 2015-05-12 21:58:46 · 566 阅读 · 0 评论 -
leetcode--Trapping Rain Water
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.For example, Given [0,1,0,2,1,0,1,3,2,1,2,1]原创 2015-05-15 20:59:55 · 656 阅读 · 0 评论 -
leetcode--Triangle
Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.For example, given the following triangle[ [2], [3,4], [6,原创 2015-06-14 21:03:11 · 880 阅读 · 0 评论 -
leetcode--Next Permutation
Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.If such arrangement is not possible, it must rearrange it as the lowest possible o原创 2015-05-10 11:06:02 · 527 阅读 · 0 评论 -
leetcode--Pascal's Triangle II
Given an index k, return the kth row of the Pascal's triangle.For example, given k = 3,Return [1,3,3,1].Note:Could you optimize your algorithm to use only O(k) extra space?public class Solut原创 2015-06-05 17:11:02 · 478 阅读 · 0 评论 -
leetcode--Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle.For example, given numRows = 5,Return[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]public class Solution { p原创 2015-06-05 17:03:22 · 479 阅读 · 0 评论