Decorative image frame

Geooo的博客

(王兆祺の个人博客)

Geooo的博客

10.25纪念日

纪念日

  • 提前工作

    1. book主题L ( 提前2日 ) 2. 正佳蛋糕 ( 10.18傍晚book )
  • 早上安排

    1. 8.10 ~ 8.20 出门D1楼下等 2. 8.35 ~ 8.50 坐车 3. 10.00 ~ 10.30 到 丽雅苑 4. 10.45 ~ 11.00 KFC 全家桶 5. 11.30 ~ 12.10 主题L 放东西
  • 下午安排

    1. 12.30 ~ 2.00 到正佳广场 2. 2.30 ~ 5.00 做蛋糕
  • balabala玩了好多东西,坐了好多地铁,最后愉快地结束

剑指offer 旋转数组的最小数字

题目详情

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。

NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

阅读全文...

剑指offer 树的子结构

题目详情

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

思路

  1. 当root1 与 root2 相等

    1
    2
    3
       从 该节点 开始往下 循环判断 
    ```
    2. 当root1 与 root2 不相等

    root1的left节点 与 root2 循环判断

    1
    2
    3
    <!-- more -->

    3. 循环判断

    a. 若 root2 == null ,表示子树已经遍历完毕,返回true

    b. 若 root1 == null , 表示 root2 还没遍历完,root1已经遍历完,不匹配返回false

    c. 若 root1 != root2,不匹配返回false

    d. 若 root1 == root2

    则 往下判断 root1.left == root2.left 和 root1.right == root2.right
1
2

### 代码

/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;

public TreeNode(int val) {
    this.val = val;

}

}
*/
public class Solution {
public boolean HasSubtree(TreeNode root1,TreeNode root2) {
boolean res = false;
if(root1!=null && root2!=null){
//如果相等则进入查找循环
if(root1.val == root2.val){
res = isSubTree(root1,root2);
}
//不相等则往子树进行判断
if(!res){
res = HasSubtree(root1.left,root2);
}
//右子树进行判断
if(!res){
res = HasSubtree(root1.right,root2);
}

    }
    return res;
}

public boolean isSubTree(TreeNode root1, TreeNode root2){
    if(root2 == null){
        return true;
    }
    if(root1 == null){
        return false;
    }
    if(root1.val != root2.val){
        return false;
    }else{
        return (isSubTree(root1.left,root2.left)&&isSubTree(root1.right,root2.right));
    }

}

}
```

String与StringBuilder源码分析

StringBuilder 与 String源码解析

1. StringBuilder是线性不安全的,而String是线性安全的

解析:StringBuilder是 char[] 但是没有synchronize修饰,因此StringBuilder是线性不安全的,而String是 final char[],因此无论什么情况都不能对String进行修改,因此String是线性安全的。

阅读全文...

直接插入排序思想

直接插入排序思想

每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。

根据题干初始关键字序列为(30,20,10,25,15,28) 步骤如下:括号内为有序,括号外为待排序

阅读全文...