剑指offer、牛客
Yes_JiangShuai
默默奋斗的攻城狮 向往掌握技术而不限于技术
展开
-
剑指offer、牛客-数值的整数次方
思路:指数为3种情况:正数,负数,0;负指数直接对正指数的结果求倒即可,指数为0,结果为1;特殊情况:负数的0次幂,此时异常(返回-1,或者抛异常)注意点:浮点数的比较方法;位运算的应用;public class Solution { public double Power(double base, int exponent) { if(equalDoub...原创 2018-06-05 08:59:13 · 402 阅读 · 0 评论 -
剑指offer、牛客-变态跳台阶
数归法:可得:public class Solution { public int JumpFloorII(int n) { if(n <= 0) return 0; if(n == 1) return 1; int result = 1; for(int k = 2; k...原创 2018-05-31 16:17:40 · 286 阅读 · 0 评论 -
剑指offer、牛客-斐波那契数列
非递归:时间复杂度为O(n)public class Solution { public int Fibonacci(int n) { int[] result = {0,1}; if(n <= 0) return result[0]; if(n == 1) return result[1]; ...原创 2018-05-31 16:15:19 · 217 阅读 · 0 评论 -
剑指offer、牛客-旋转数组的最小数字
通过数组中间位置数值的大小,来缩小查找范围(二分查找的变种)1 递归import java.util.ArrayList;public class Solution { public int minNumberInRotateArray(int [] array) { if(array == null || array.length == 0) retu...原创 2018-05-31 16:13:25 · 267 阅读 · 0 评论 -
剑指offer、牛客-用两个栈实现队列
import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int...原创 2018-05-31 16:10:44 · 225 阅读 · 0 评论 -
剑指offer、牛客-重建二叉树
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { publi...原创 2018-05-31 16:07:37 · 306 阅读 · 0 评论 -
剑指offer、牛客-从尾到头打印链表
方法一:借助堆栈的“后进先出”实现 /*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**/import java.util....原创 2018-05-31 16:05:38 · 245 阅读 · 0 评论 -
剑指offer、牛客-二维数组的查找
描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:根据数组的特性来缩小范围public class Solution { public boolean Find(int target, int [][] array) { int rows = 0,...原创 2018-05-31 16:03:56 · 310 阅读 · 0 评论 -
剑指offer、牛客-打印1到最大的n位数
思路:直接使用int进行遍历,int有边界(使用数组模拟,或者使用全排列)1 数组模拟法public class Solution { public void printToMaxOfNDedits(int n){ if(n < 0) return; if (n ==0 ){ System.out.pri...原创 2018-06-05 09:02:19 · 752 阅读 · 0 评论 -
剑指offer、牛客-二进制中1的个数
思路:整数n: n&(n-1) 相当于把整数的二进制表示中的最右边一个1变为0;public class Solution { public int NumberOf1(int n) { int count = 0; while(n != 0){ count ++; n = (n - 1) & n; ...原创 2018-05-31 16:20:33 · 273 阅读 · 0 评论