会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
kaithy
博客园
首页
新随笔
联系
订阅
管理
2019年10月20日
JDK8 Optional操作学习
摘要: 介绍 Optional是JDK8中提供用于包含未知对象的工具类,即可以利用Optional包装对象来避免繁琐的空指针检查,以及NullPointException的处理,在Optional中,用value代表所包裹的对象。 API table th { width: 100px; } | 方法名称
阅读全文
posted @ 2019-10-20 17:45 奶昔书斋
阅读(379)
评论(0)
推荐(0)
2019年8月13日
LeetCode 腾讯精选50题--二叉树中的最大路径和
摘要: 二叉树中的最大路径和 题目描述 给定一个非空二叉树,返回器最大路径和,路径指一条从任意节点出发,到达任意节点的序列,该路径至少包含一个节点,且不一定经过根节点 解题思路 树这一类数据结构我还不是很熟悉,需要更进一步的学习,以下思路来自于题解: 根据题意可知,一条最大的路径存在两种可能: 1. 存在一
阅读全文
posted @ 2019-08-13 20:58 奶昔书斋
阅读(899)
评论(0)
推荐(0)
2019年8月12日
LeetCode 腾讯精选50题--二叉树的最大深度
摘要: 求二叉树的最大深度, 基本思路如下: 设定一个全局变量记录二叉树的深度,利用递归,没遍历一层都将临时深度变量+1,并在每一节点递归结束后判断深度大小。 具体代码如下:
阅读全文
posted @ 2019-08-12 19:45 奶昔书斋
阅读(304)
评论(0)
推荐(0)
LeetCode 腾讯精选50题--2的幂
摘要: 在二进制中,2的幂的数字用二进制表示时只会有一位表示为1,其余都为0,基于这个前提,可以有两种方案: 1. 做位移操作 2. 与数值取反并与原数值做与操作,判断是否与原来的数值相同 对于方案1,我的想法是对数值 n 先做一次右移的移位操作,然后在对右移后的数做左移操作,判断两次操作前后的数值是否相同
阅读全文
posted @ 2019-08-12 18:45 奶昔书斋
阅读(183)
评论(0)
推荐(0)
LeetCode 腾讯精选50题--求众数
摘要: 由于众数是指数组中相同元素的个数超过数组长度的一半,所以有两种思路,一. 先排序,后取排序后的数组的中间位置的值;二. 统计,设定一个变量统计相同元素出现的次数,遍历数组,若与选定的元素相同,统计变量加一,否则减一,如果统计变量减为0,则换下一个元素作为对比元素,这么做可行的原因是众数的数量超过数组
阅读全文
posted @ 2019-08-12 12:12 奶昔书斋
阅读(201)
评论(0)
推荐(0)
2019年8月10日
LeetCode 腾讯精选50题--只出现一次数字
摘要: 事先说明,如果不是评论区的大牛一语点破,我可能还会陷在死胡同里出不来,这道题其实很简单,利用了任何一个学过二进制的人都了解的定理,即: 1. 异或操作满足交换律 : a ^ b ^ c 等价于 a ^ c ^ b 2. 0与任何数的异或都是数字本身: 0 ^ n = n 3. 相同的两个数的异或结果
阅读全文
posted @ 2019-08-10 22:13 奶昔书斋
阅读(256)
评论(0)
推荐(0)
2019年8月9日
LeetCode 腾讯精选50题--链表排序
摘要: 解题思路:归并 先把链表拆开,分为两部分,一直拆到只剩一个元素后,进行合并,利用一个临时节点记录重排后的链表的起始位置 合并不难,困难点在于如何拆分链表,自己的大体思路是利用两个指针,一个一次移动两位,一个移动一位,当移动快的结束时,慢的指针指向的位置就是链表的中间位置, 将中间位置往后的进行递归切
阅读全文
posted @ 2019-08-09 19:09 奶昔书斋
阅读(305)
评论(0)
推荐(0)
2019年8月8日
LeetCode 腾讯精选50题--子集
摘要: 根据题意,找到几何中的所有子集,说实话子集是没有什么头绪的,因为如果采用遍历的方法,稍有遗漏不说,代码的嵌套循环层数随着数组大小的增加而增加,想了很久没有头绪后就去看了看评论,然后就被点破了解题的关键:遍历数组时,让当前这一元素构成的集合,分别去加上之前找到的所有子集,由于第一次找到的子集一定有两个
阅读全文
posted @ 2019-08-08 20:30 奶昔书斋
阅读(250)
评论(0)
推荐(0)
2019年8月7日
LeetCode 腾讯精选50题-- 买卖股票的最佳时机 II
摘要: 贪心算法: 具体的解题思路如下: II 的解题思路可以分为两部分, 1. 找到数组中差值较大的两个元素,计算差值。 2. 再步骤一最大的元素的之后,继续遍历,寻找差值最大的两个元素 可以得出的是,遍历指针是一直向着数组的尾部移动的,由于要取得局部的最大差值,这一局部子数组中的元素一定是递增的,所以先
阅读全文
posted @ 2019-08-07 18:15 奶昔书斋
阅读(134)
评论(0)
推荐(0)
2019年8月6日
LeetCode 腾讯精选50题--合并K个排序链表
摘要: 今天的题目稍微有点复杂了,因为是K个有序链表的合并,看到这道题后的大体思路是这样的: 1.首先先做到两个链表的合并,链表的合并我想到的是用递归操作, 2.其次是多个链表的合并,所以在第一步实现的基础上,我考虑每次选择两个链表进行合并,一个链表数组作为一个整体,那么就可以采用归并算法进行合并,利用两个
阅读全文
posted @ 2019-08-06 19:43 奶昔书斋
阅读(172)
评论(0)
推荐(0)
下一页
公告