自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 降低寻找某数所有因数的时间复杂度

在leetcode中,不乏一些需要寻找某整型数n的所有因数的题目。若用取余的方法从1到n去遍历查找,时间复杂度是O(n),在面对一些比较大的数字时,会花费非常多的时间。比如寻找n=100的全部因数,使用以下的代码:public List<Integer> findFactors(int n){ List<Integer> factors = new ArrayLi...

2020-01-31 15:26:02 580

原创 504.七进制数

base-7题目描述给定一个整数,将其转化为7进制,并以字符串形式输出。示例 1:输入: 100输出: “202”示例 2:输入: -7输出: “-10”注意: 输入范围是 [-1e7, 1e7] 。代码public class Solution { public String convertToBase7(int num){ boolean isNegativ...

2020-01-31 01:11:10 98

原创 500.键盘行

keyboard-row题目描述给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。示例:输入: [“Hello”, “Alaska”, “Dad”, “Peace”]输出: [“Alaska”, “Dad”]注意:你可以重复使用键盘上同一字符。你可以假设输入的字符串将只包含字母。代码public class Solution { publi...

2020-01-30 23:51:38 124

原创 496.下一个更大元素!

next-greater-element-i题目描述给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出-1。示例 1:输入: nums1 = ...

2020-01-30 23:04:00 83

原创 482.密钥格式化

license-key-formatting题目描述给定一个密钥字符串S,只包含字母,数字以及 ‘-’(破折号)。N 个 ‘-’ 将字符串分成了 N+1 组。给定一个数字 K,重新格式化字符串,除了第一个分组以外,每个分组要包含 K 个字符,第一个分组至少要包含 1 个字符。两个分组之间用 ‘-’(破折号)隔开,并且将所有的小写字母转换为大写字母。给定非空字符串 S 和数字 K,按照上面描述...

2020-01-30 18:14:44 187

原创 455.分发饼干

assign-cookies题目描述假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。...

2020-01-29 19:03:02 136

原创 434.字符串中的单词数

number-of-segments-in-a-string题目描述统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: “Hello, my name is John”输出: 5注意点由于有些用例比较bt,类似于:, , , , , , a, abcd所以必须抓住最根本的性质。可...

2020-01-29 13:09:33 131

原创 405.数字转换为16进制数

convert-a-number-to-hexadecimal题目描述给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。注意:十六进制中所有字母(a-f)都必须是小写。十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符’0’来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。给定的数确保在32位有符号整数范...

2020-01-28 17:14:36 225

原创 404.递归求左叶子之和

题目描述代码public class Solution { public int sumOfLeftLeaves(TreeNode root){ int sum = 0; if(root == null){ return 0;//这个判断非常重要,若缺失将引发空指针异常 } if(root.left!=null && root.left.left==n...

2020-01-28 16:32:26 67

原创 392.判断子序列

is-subsequence题目描述给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"...

2020-01-28 10:52:58 105

原创 371.java实现二进制加法

sum-of-two-integers题目描述不使用运算符 + 和 - ​​​​​​​,计算两整数 ​​​​​​​a 、b ​​​​​​​之和。示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1代码public class Solution { public int getSum(int a,int b){ ...

2020-01-27 21:47:21 252

原创 原码、反码、补码与加法器

本科阶段很早就学过原码、反码与补码,但当时没有实际应用过。今天在刷371题时,涉及包含负数的二进制加法,这才开始明白为什么在计算机中负数需要以补码的形式来存储。在此之前,必须要明白的一个核心概念是同余,这里给出一个引例:我们有一个挂钟,上面均匀分布着12小时,现在时针指向的时间是3点,假如我们要使时针指向5点,需要怎么做呢?比较容易想到的是2种做法:将时针逆时针拨10小时将时针顺时针拨...

2020-01-27 21:30:18 1483

原创 350.两个数组的交集II

intersection-of-two-arrays-ii题目描述给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组...

2020-01-27 13:38:18 96

原创 345.反转字符串中的元音字母

reverse-vowels-of-a-string题目描述编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: “hello”输出: “holle”示例 2:输入: “leetcode”输出: “leotcede”代码这道题自认为代码书写比较规范,综合运用了几种简单的数据结构,总结出来供以后参考:public class Solution {...

2020-01-26 23:33:50 81

原创 283.移动零

move-zeroes题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。来自网友的题解public class Solution { public void moveZeroes(int[...

2020-01-26 18:22:49 265 1

原创 257.递归输出二叉树的所有路径

binary-tree-paths题目描述代码public class Solution { public List<String> binaryTreePaths(TreeNode root){ String path = new String(); List<String> paths = new ArrayList<>(); cons...

2020-01-26 15:14:12 657

原创 237.删除链表中的当前结点(一个参数)

delete-node-in-a-linked-list题目描述请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:4->5->1->9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的...

2020-01-26 12:59:30 179

原创 226.翻转二叉树

题目描述据说Homebrew之父Max Howell由于没做出来这题面试谷歌被拒,那么看来能做出来就是算法大牛咯~代码class Solution { public TreeNode invertTree(TreeNode root){ //终止条件:反转一颗空树,其结果还是一颗空树 if(root == null){ return null; } TreeN...

2020-01-24 01:08:07 99

原创 225.用两个队列实现栈

implement-stack-using-queues题目描述使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你...

2020-01-23 23:50:11 91

原创 219.滑动窗口方法解决固定区域内存在重复元素的问题

contains-duplicate-ii题目描述给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true...

2020-01-23 14:31:43 350

原创 206.反转链表

reverse-linked-list题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL首先我想到的是使用栈先进后出的特性:代码public ListNode reverseList(ListNode head){ if(head == nul...

2020-01-23 13:02:00 81

原创 StringBuilder类:构建字符串的好帮手

在不了解StringBuilder类之前,动态构建字符串的过程非常别扭,常常需要好几步的类型转换。今天大致了解了StringBuilder类,在java 5提出,本质是一个可变的字符序列,可以用于动态地构建字符串。其中最常用的是append(参数)方法,参数类型覆盖了各种常见的基本数据类型。在字符串构建完成之后,对StringBuilder类的对象调用toString()方法,即可将其转换为Str...

2020-01-22 17:44:34 146

原创 167.O(n)时间复杂度下求解两数之和II

two-sum-ii-input-array-is-sorted题目描述给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例...

2020-01-21 22:32:50 281

原创 46.使用回溯法解决全排列问题

permutations前阵子阴差阳错给华为的HR提交了联系方式,今天竟然通知我参加机试,心想正好趁这个机会感受一下华为的难度,于是就参加了。机试时间1.5h,只有一道题,便是全排列问题。和leetcode第46题的一些小区别在于:需要用户从键盘输入整数n,进行1~n的全排列;每个全排列不使用数组单独保存各位数字,而是保存成一个整型数,并组合进一个数组,返回这个数组。示例:输入:...

2020-01-21 20:13:41 1196

原创 155.实现最小栈

min-stack问题描述设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minSta...

2020-01-20 16:31:52 83

原创 24.两两交换链表中的节点

swap-nodes-in-pairs题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.使用递归解决此问题,代码如下:package pid24;public class Solution {...

2020-01-19 10:58:49 73

原创 git学习笔记

一、git的安装与配置配置过程记录如下:1、配置用户名:git config --global user.name “loveblack”2、配置联系方式:git config --global user.email “xiaoqian2016@foxmail.com”3、查看配置过的所有项目:git config --list或git config -l二、创建仓库(Repositor...

2020-01-18 22:05:00 177

原创 字符串的比较:==与equals

public class Main { public static void main(String[] args) { String s1 = new String("Hello"); String s2 = new String("Hello"); String s3 = "Hello"; boolean expression1 = (s1 == s2); boolea...

2020-01-17 19:19:31 1014

原创 java求对数时的注意点

在java中,java.lang.Math类提供了double log(int n)方法,返回的结果是以e为底对n求对数的结果。java中没有提供以其它整数作为底数的对数函数,因此,只能利用换底公式进行计算。在leetcode 258题中,有一步需要计算多个以10为底的数字的对数,计算10 ^1 ~ 10 ^8时都没有问题,但在计算log10(10 ^9)时,返回的结果是8,明显出现了错误。...

2020-01-17 15:53:21 339

原创 50.二分法思想递归实现指数函数的计算

传送门:powx-n题目描述实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < ...

2020-01-15 20:15:52 349

原创 141.HashSet:判断链表是否有环

传送门:linked-list-cycle题目描述给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:he...

2020-01-14 16:00:04 302

原创 136.异或运算:寻找只出现一次的数字

传送门:single-number题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4代码package pid136;public class...

2020-01-14 14:30:27 214

原创 2020年度学习计划及执行情况

Q1:1月:开始时间结束时间技术或目标参考资料完成情况12/261/2ajax韩顺平按照教程完成3个项目,第4个项目剩余一部分问题未解决1/11/31leetcode 80道/1/111/11git表严肃完成1/13mysqlmysql必知必会1/131/14bootstrap表严肃完成1/14...

2020-01-14 02:02:48 609

原创 玩转bootstrap学习笔记

开始时间:2020/1/13结束时间:2020/1/14一、日常前戏1、bootstrap官网:getbootstrap.com官网给bootstrap的定义是:the world’s most popular front-end component library.2、bootstrap中文网:bootcss.com,本课程只介绍bootstrap常用的那部分,剩余的部分相关文档可...

2020-01-13 00:52:58 282

原创 java中int转long

package pid69;public class Solution { public static int mySqrt(int x){ int result = 0; if(x==0 || x==1){ return x; }else{ for(int i=0;i<=x/2;i++){ int a = i*i; //防止溢出,务必注意右边需...

2020-01-12 23:51:04 2232

原创 《mysql必知必会》学习笔记

开始时间:2020/1/12结束时间:2020/1/15第三章:使用mysql1、查看表customers的列信息:show columns from customers;等价于describe customers;第四章:检索数据1、未排序数据:检索中,如果没有明确排序查询结果,则返回的数据的顺序可能是数据被添加到表中的顺序,也可能不是。只要返回相同数目的行,就是正常的。...

2020-01-12 23:49:28 110

原创 leetcode第107题:二叉树的层次遍历II

链接:binary-tree-level-order-traversal-ii题目描述:package pid107A;import java.util.List;import java.util.LinkedList;public class Solution{ public static List<List<Integer>> levelOrderBo...

2020-01-12 22:14:55 106

原创 java中List和ListIterator的常用操作

一、List以下是实现List接口的两个类:ArrayListLinkedListArrayList由数组备份,LinkedList由链表备份。如果我们频繁地访问列表的元素,那么ArrayList会表现得更好。同时,访问ArrayList中的元素更快,因为它是数组作为后端的。在ArrayList中添加或删除元素比较慢,因为涉及对象的移动;而在LinkedList中添加和删除元素则性...

2020-01-12 18:46:45 327

原创 递归求解二叉树最大深度的一些思考

链接:maximum-depth-of-binary-tree题目描述:求解二叉树的最大深度,具有最优子结构性质,属于动态规划的范畴,常规的思路就是使用递归来求解。为了追求代码的简洁性,我想到了运用三元表达式,第一遍书写的代码如下:public static int maxDepth(TreeNode root){ if(root == null){ /* * 终止条件...

2020-01-12 15:02:28 324

原创 关于div的一些理解

1、div的作用就是包裹不同的元素,为不同的元素设计不同的样式,如果没有div,不同的元素将是眉毛胡子一把抓。2、通过对淘宝、百度等网页页面元素的检索,发现一个页面内嵌套了近百个div。可见,使用div实现的盒子模型,是网页设计的核心。3、div是很轻薄的。...

2020-01-11 22:32:52 830

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除