剑指offer-java实现
yiqiqiwww
这个作者很懒,什么都没留下…
展开
-
文章标题
题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?import java.util.Arrays原创 2017-12-14 17:19:07 · 130 阅读 · 0 评论 -
剑指offer—二叉树的镜像
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。public class Solution { public void Mirror(TreeNode root) { if(root==null) return; TreeNode temp = root.left; root.left = root.right; roo原创 2017-12-07 15:53:51 · 129 阅读 · 0 评论 -
剑指offer—包含min函数的栈
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public vo原创 2017-12-07 17:03:45 · 119 阅读 · 0 评论 -
leetcode—Two Sum
Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same e原创 2017-12-17 17:33:51 · 142 阅读 · 0 评论 -
leetcode—Add Two Numbers
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it原创 2017-12-17 17:40:51 · 136 阅读 · 0 评论 -
leetcode— Length of Last Word
Given a string s consists of upper/lower-case alphabets and empty space characters ’ ‘, return the length of last word in the string. If the last word does not exist, return 0. Note: A word is define原创 2018-01-02 08:33:18 · 223 阅读 · 0 评论 -
leetcode—Plus One
Given a non-negative integer represented as a non-empty array of digits, plus one to the integer. You may assume the integer do not contain any leading zero, except the number 0 itself. The digits ar原创 2018-01-02 09:28:19 · 222 阅读 · 0 评论 -
leetcode—Combination Sum
Given a set of candidate numbers (C) (without duplicates) and a target number (T), find all unique combinations in C where the candidate numbers sums to T. The same repeated number may be chosen from原创 2018-01-02 10:40:36 · 208 阅读 · 0 评论 -
leetcode—Combination Sum II
Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T. Each number in C may only be used once in the combination.原创 2018-01-02 11:19:12 · 203 阅读 · 0 评论 -
leetcode-Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters.Examples:Given “abcabcbb”, the answer is “abc”, which the length is 3.Given “bbbbb”, the answer is “b”, with the le原创 2017-12-18 16:14:25 · 141 阅读 · 0 评论 -
剑指offer—合并两个排序的链表
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { if(list1==null && list2==null) return null; if(原创 2017-12-07 14:23:00 · 147 阅读 · 0 评论 -
剑指offer—整数中1的个数
题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。public class Solution { public int NumberOf1Betwee原创 2017-12-15 22:11:16 · 465 阅读 · 0 评论 -
剑指offer—数组中的逆序对
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007public class Solution { public int InversePairs(int [] array) { if(array==null ||原创 2017-12-15 21:18:00 · 157 阅读 · 0 评论 -
剑指offer—用两个栈实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); p原创 2017-12-06 10:52:11 · 111 阅读 · 0 评论 -
剑指offer—旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。import java.util.ArrayList;public class Solution {原创 2017-12-06 12:01:40 · 140 阅读 · 0 评论 -
文章标题
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.import java.util.ArrayList;public class Solution { ArrayList原创 2017-12-14 23:06:30 · 134 阅读 · 0 评论 -
剑指offer—二进制中1的个数
题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示public class Solution { public int NumberOf1(int n) { int count=0; while(n!=0){ n = (n-1)&n; count++; }原创 2017-12-06 15:20:25 · 143 阅读 · 0 评论 -
剑指offer—数值的整数次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。public class Solution { public double Power(double base, int exponent) { if(base==0.0) return 0; if(exponent==0) return原创 2017-12-06 17:17:09 · 131 阅读 · 0 评论 -
剑指offer—调整数组顺序使奇数位于偶数前面
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。public class Solution { public void reOrderArray(int [] array) { if(array==null || array.length<=原创 2017-12-06 21:19:40 · 124 阅读 · 0 评论 -
剑指offer—链表中倒数第K个结点
题目描述 输入一个链表,输出该链表中倒数第k个结点public class Solution { public ListNode FindKthToTail(ListNode head,int k) { if(head==null || k<=0) return null; ListNode p,q; p=q=head; in原创 2017-12-06 22:54:40 · 149 阅读 · 0 评论 -
剑指offer—反转链表
题目描述 输入一个链表,反转链表后,输出链表的所有元素。public class Solution { public ListNode ReverseList(ListNode head) { if(head==null) return null; if(head.next==null) return head; ListNode preHe原创 2017-12-07 09:48:43 · 132 阅读 · 0 评论 -
剑指offer—数字在排序数组中出现的次数
题目描述 统计一个数字在排序数组中出现的次数。public class Solution { public int GetNumberOfK(int [] array , int k) { if(array==null || array.length<=0) return 0; int first = getFirst(array,k); in原创 2017-12-15 19:13:44 · 160 阅读 · 0 评论 -
leetcode—First Missing Positive
Given an unsorted integer array, find the first missing positive integer. For example, Given [1,2,0] return 3, and [3,4,-1,1] return 2. Your algorithm should run in O(n) time and uses constant spac原创 2018-01-02 15:32:02 · 209 阅读 · 0 评论 -
leetcode—Reverse Integer
Given a 32-bit signed integer, reverse digits of an integer. Example 1:Input: 123 Output: 321 Example 2:Input: -123 Output: -321 Example 3:Input: 120 Output: 21 Note: Assume we are dealing wit原创 2017-12-18 22:36:17 · 210 阅读 · 0 评论 -
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].class Solution { public List<Interval> merge(List<Int原创 2018-01-04 11:44:17 · 197 阅读 · 0 评论 -
leetcode—Insert Interval
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary). You may assume that the intervals were initially sorted according to their start times. Exampl原创 2018-01-04 15:17:03 · 197 阅读 · 0 评论 -
leetcode—Permutation Sequence
The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the permutations in order, We get the following sequence (ie, for n = 3): “123” “132” “213” “231”原创 2018-01-04 21:39:58 · 217 阅读 · 0 评论 -
leetcode-Count and Say
The count-and-say sequence is the sequence of integers with the first five terms as following:111211211111221 1 is read off as “one 1” or 11. 11 is read off as “two 1s” or 21. 21 is read off as原创 2017-12-30 11:10:13 · 227 阅读 · 0 评论 -
leetcode—Sort Colors
Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue. Here, we will use the integers 0,原创 2018-01-05 22:58:52 · 267 阅读 · 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 row原创 2018-01-06 16:13:06 · 208 阅读 · 0 评论 -
leetcode—Combinations
Given two integers n and k, return all possible combinations of k numbers out of 1 … n. For example, If n = 4 and k = 2, a solution is: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],原创 2018-01-06 16:15:03 · 204 阅读 · 0 评论 -
leetcode—Subsets
Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solution set must not contain duplicate subsets. For example, If nums = [1,2,3], a solution is: [原创 2018-01-07 09:05:49 · 242 阅读 · 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原创 2018-01-08 22:00:54 · 362 阅读 · 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 ] ] Yo原创 2018-01-04 10:04:32 · 225 阅读 · 0 评论 -
leetcode—Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:[ “((()))”, “(()())”, “(())()”, “()(())”,原创 2017-12-28 11:09:14 · 129 阅读 · 0 评论 -
leetcode—N-Queens系列
题目链接class Solution { List<List<String>> res = new ArrayList<>(); public List<List<String>> solveNQueens(int n) { if(n<=0) return res; int[] colForRow = new int[n]; NQuee原创 2018-01-03 15:35:34 · 238 阅读 · 0 评论 -
leetcode—Median of Two Sorted Arrays
There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).Example 1: nums1 = [1, 3] num原创 2017-12-19 11:03:09 · 117 阅读 · 0 评论 -
leetcode—Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space.Some hints: Could negative integers be palindromes? (ie, -1) If you are thinking of converting the integer to string, note th原创 2017-12-19 11:27:46 · 138 阅读 · 0 评论 -
剑指offer—树的子结构
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { boolean result = false; if(root1==null || root2原创 2017-12-14 22:10:05 · 126 阅读 · 0 评论 -
剑指offer—数据流中的中位数
题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。import java.util.PriorityQueue;import java.util.Comparator;public class Solution { int count = 0原创 2017-12-14 20:46:08 · 159 阅读 · 0 评论