算法
uestc_zhangli
这个作者很懒,什么都没留下…
展开
-
2018.7.10学习笔记2
剑指Offer P74 题目一:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39public class Solution { public int Fibonacci(int n) { // 递归虽然代码简洁,但是效率低下,因为从上往下,存在大量重复计算 // 考虑从下往上,运用循环 int f...原创 2018-07-10 22:01:15 · 151 阅读 · 0 评论 -
2018.7.11学习笔记
剑指Offer P82 面试题11 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。排序或者部分排序的数组,考虑二分法,但是要注意特殊情况。本题总共有三种情况import ...原创 2018-07-11 22:41:49 · 178 阅读 · 0 评论 -
2018.7.17学习笔记——剑指Offer——面试题17:打印从1到最大的n位数
题目:输入数字n,按顺序打印出从1到最大的n为十进制数。比如输入3,则打印1、2、3一直到最大的3位数999。 分析:如果n不为正数的情况。以及最重要的是n较大时,n位十进制数可能超出了int甚至long型的范围。因此考虑用字符串或者数组来表示这样的大数。一个一个加1的方式 import java.util.Scanner; public class Solution { publ...原创 2018-07-17 23:48:14 · 194 阅读 · 0 评论 -
2018.7.12学习笔记
剑指Offer P89 面试题12:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含...原创 2018-07-12 23:52:12 · 142 阅读 · 0 评论 -
2018.7.13学习笔记二——常用排序算法及实现(未完)
排序方法最优时间平均时间最差时间辅助空间稳定性冒泡O(n)O(n^2)O(n^2) 稳定插入O(n)O(n^2)O(n^2) 稳定选择O(n^2)O(n^2)O(n^2) 不稳定希尔 O(n^1.25) 不稳定堆O(nlgn)O(nlgn)O(nlgn) 不稳定快速O(nlgn)O(nlgn)O(nlgn) 不稳定归并O(nlgn)O(nlgn)O(nlgn)O(n)稳定认为排序到从小到大有序,...原创 2018-07-13 17:20:32 · 172 阅读 · 0 评论 -
2018.7.14学习笔记——剑指Offer:位运算——面试题15:二进制中1的个数
P100:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。判断整数最右边是否为1,让该整数与1做与运算,结果为0则不是,为1则是。方法1:public class Solution { public int NumberOf1(int n) { // 输入数右移做与运算,在负数的情况下会导致死循环 // 测试数左移做与运算,则完美避开死循环...原创 2018-07-14 17:05:13 · 193 阅读 · 0 评论 -
2018.7.21学习笔记
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 方法一:暴力求解:时间复杂度O(n^2),空间复杂度O(1) class Solution {...原创 2018-07-21 16:05:20 · 151 阅读 · 0 评论