Java日记2018-07-04

55.1 二叉树的深度

public static int depth(TreeNode root){
        if(root==null) return 0;
        int left = depth(root.left);
        int right = depth(root.right);
        if(left>=right){
            return left+1;
        } else{
            return right+1;
        }
         
    }
  1. 数组中只出现一次的数字
public static void FindNumsAppearOnce(int[] nums, int num1, int num2) {
        int diff = 0;
        for (int num : nums)
            diff ^= num;
        // 得到最右一位
        System.out.println(diff);
        diff &= -diff;

        for (int num : nums) {
            if ((num & diff) == 0) {
                System.out.println("num1 is: " + num);
                num1 ^= num;
            } else
                num2 ^= num;
        }
        System.out.println(num1 + num1);
    }

57.1 和为 S 的两个数字
注意此时的lst的排放英国是01 23 45 这样的方式排放结果,以数组1 2 3 4 5 6找和为7的结果为例,index0是1 index 1是2。。。

public static ArrayList<Integer> sum(int[] arr,int target){
        ArrayList<Integer> lst = new ArrayList<>();
        int start = 0;
        int end = arr.length-1;
        while(start<end){
            if(arr[start]+arr[end]==target){
                lst.addAll(Arrays.asList(arr[start],arr[end]));
                start++;
                end--;
            } else if(arr[start]+arr[end]<target){
                start++;
            } else{
                end--;
            }
        }
        return lst;
    }
  1. 滑动窗口内整数的最大值
public static ArrayList<Integer> maxv(int[] arr,int k){
        if(arr==null) return null;
        ArrayList<Integer> lst= new ArrayList<>();
        //注意表达式怎么写的
        PriorityQueue<Integer> que = new PriorityQueue<>((s1,s2)->(s2-s1));
        for(int i=0;i<k;i++){
            que.add(arr[i]);
        }
        int curm=que.peek();
        lst.add(curm);
        //注意i j怎么初始化的
        for(int i=1,j=i+k-1;j<arr.length;i++,j++){
            que.remove(arr[i-1]);
            que.add(arr[j]);
            lst.add(que.peek());
        }
        return lst;
    }

一 反射
每个类都有一个 Class 对象,包含了与类有关的信息。当编译一个新类时,会产生一个同名的 .class 文件,该文件内容保存着 Class 对象。

类加载相当于 Class 对象的加载。类在第一次使用时才动态加载到 JVM 中,可以使用 Class.forName("com.mysql.jdbc.Driver") 这种方式来控制类的加载,该方法会返回一个 Class 对象。

反射可以提供运行时的类信息,并且这个类可以在运行时才加载进来,甚至在编译时期该类的 .class 不存在也可以加载进来。

Class 和 java.lang.reflect 一起对反射提供了支持,java.lang.reflect 类库主要包含了以下三个类:

Field :可以使用 get() 和 set() 方法读取和修改 Field 对象关联的字段;
Method :可以使用 invoke() 方法调用与 Method 对象关联的方法;
Constructor :可以用 Constructor 创建新的对象。

2 Set

  • HashSet:基于哈希实现,支持快速查找,但不支持有序性操作,例如根据一个范围查找元素的操作。并且失去了元素的插入顺序信息,也就是说使用 Iterator 遍历 HashSet 得到的结果是不确定的;

  • TreeSet:基于红黑树实现,支持有序性操作,但是查找效率不如 HashSet,HashSet 查找时间复杂度为 O(1),TreeSet 则为 O(logN);

  • LinkedHashSet:具有 HashSet 的查找效率,且内部使用链表维护元素的插入顺序。

3 List

  • ArrayList:基于动态数组实现,支持随机访问;

  • Vector:和 ArrayList 类似,但它是线程安全的;

  • LinkedList:基于双向链表实现,只能顺序访问,但是可以快速地在链表中间插入和删除元素。不仅如此,LinkedList 还可以用作栈、队列和双向队列。

4 Queue

  • LinkedList:可以用它来支持双向队列;

  • PriorityQueue:基于堆结构实现,可以用它来实现优先队列。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • 树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...
    Jack921阅读 4,432评论 1 31
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 5,654评论 0 13
  • 人们常讲“认真工作的男人(女人)最美丽”,不少人以为这话是工作狂自我肯定、自我激励的话语,也有人认为这是领导给员工...
    管理顾问王荣增阅读 900评论 2 6
  • 加班时给儿子打了电话,听见他萎靡不振的声音很是担心,问他缘由他不愿意说,下班后飞奔回家。 觉察事实: 儿子想打会儿...
    洁丽1688阅读 99评论 0 1
  • 5.14 星期一 天气晴 今天很热,是今年的第一个热天, 有点闷的感觉,早上起来佳昊就提醒我今天下午要去...
    李佳昊阅读 181评论 0 1