算法与数据结构
词汇族
这个作者很懒,什么都没留下…
展开
-
算法与数据结构基础(二)排序基础2.插入排序
一句话概括:就像玩扑克牌时,每来一张新牌都要选择一个合适的插入位置,代码:循环从头依次抽“新牌”,与位置较前的依次比较和插入 直到插入最合适的位置。最差情况复杂度:O(n2),但是在数据近乎有序的时候甚至超过O(nlogn)一、算法 public void insertSort(int arry[]) { for (int i = 1; i < arry.length; i+原创 2017-12-10 17:52:59 · 180 阅读 · 0 评论 -
算法学习之剑指offer(十一)
一题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。import java.util.*;/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; ...原创 2018-02-17 11:17:25 · 254 阅读 · 0 评论 -
算法学习之剑指offer(十)
一题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。public class Solution {原创 2018-02-17 11:15:08 · 280 阅读 · 0 评论 -
算法学习之剑指offer(九)
一题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。public class Solution { public int Sum_Solution(int n) { int sum=n; boolean re = (n>0)&&((sum...原创 2018-02-17 11:12:46 · 260 阅读 · 0 评论 -
算法学习之剑指offer(八)
题目一题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序列。序...原创 2018-02-15 00:03:51 · 403 阅读 · 0 评论 -
算法学习之剑指offer(三)
题目1题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1原创 2018-01-20 18:09:29 · 224 阅读 · 0 评论 -
算法学习之剑指offer(二)
题目1题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。import java.util.Stack;public class Solution { Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void push(int node) {原创 2018-01-18 12:58:31 · 213 阅读 · 0 评论 -
算法学习之剑指offer(一)
题目一:题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路1:遍历每一行,然后对每一行进行二分查找,复杂度为n*lognpublic class Solution { public boolean Find(int target原创 2018-01-17 17:49:42 · 237 阅读 · 0 评论 -
算法学习之剑指offer(七)
题目1题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围: 对于%50的数据,size 对于%75的数据,size 对于%100的数据,size原创 2018-01-24 20:23:06 · 251 阅读 · 0 评论 -
算法学习之剑指offer(六)
题目1题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。import java.util.*;public class Solution { public ArrayList GetLeastNumbers_Solution(int [] input, int k) {原创 2018-01-23 23:46:11 · 277 阅读 · 0 评论 -
算法学习之剑指offer(五)
题目1题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(seque原创 2018-01-22 16:22:25 · 223 阅读 · 0 评论 -
算法学习之剑指offer(四)
题目1题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) {原创 2018-01-21 19:18:21 · 242 阅读 · 0 评论 -
算法与数据结构基础(四)高级排序算法2.快速排序
一、快速排序算法图解:解析:快速排序分两步(分区域,调目标位置):1.分区域如上图,默认第一个为目标数据v,橘色区域的数据小于v 紫色区域大于v,初始时,l 与j 位置重叠(橘色区域没数据),i开始在l的右边一个个扫描,大于v的不管(一开始就默认右边的都在紫色了),小于v的数 把这个数和 ++j更换(放到橘色区域)。这样橘色区域不断收纳小于v的数,直到i扫描到最后,分成橘 紫原创 2017-12-13 15:14:34 · 319 阅读 · 0 评论 -
算法与数据结构基础(四)高级排序算法1.归并排序
一句话概括归并排序算法:通过二分法将一组数据不断分割至最底层一个,然后依次从最底层向上每两组使用归并排序排出来。归并排序算法步骤分两步(结合上图):1.是不断划分(二分法) 2.不断把划分后的数据一步步归并起来(方法是:先复制得到相同一个数组,建立三个指针,两个在二分的新数组中,一个在原数组里指定接下来要修改的位置,通过比较两指针的数字决定放谁到上面那个指针里)原创 2017-12-11 17:04:01 · 218 阅读 · 0 评论 -
算法与数据结构基础(一)排序基础1.选择排序
一句话概括:循环每次从未排序里选择一个最小或的最大的元素依次放好,直到最后(没有未排序的了)。1.int型数组选择排序import java.util.Random;public class test1 { private static int a[]; public static void main(String[] args) { produceData(10,1,10); print(); sort(); print(); } //产生原创 2017-12-10 15:13:49 · 209 阅读 · 0 评论 -
算法与数据结构基础(三)插入排序、选择排序和冒泡排序的区别
插入排序的原理:始终定义第一个元素为有序的,将元素逐个插入到有序排列之中,其特点是要不断的移动数据,空出一个适当的位置,把待插入的元素放到里面去。插入排序的函数如下:insertion_sort(int *arr,int len){ int i,j,tmp; for(i=1;i { j=i-1; tmp=a原创 2017-12-10 18:21:16 · 237 阅读 · 0 评论 -
算法学习之剑指offer(十二)
一题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据...原创 2018-02-17 11:18:29 · 323 阅读 · 0 评论