自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kyrie23的博客

拼尽全力~

  • 博客(91)
  • 收藏
  • 关注

转载 关于“写作”你需要了解的

写作技能 写作技能(writing skill)是言语技能的一种形式。指控制和调节写作活动进行的心智活动方式。在写作过程中形成。包括构思技能、表达技能和修改技能。与写作知识密切相关,但又有区别。写作知识是一种有关写作程序的操作性知识,对写作活动只起定向作用。言语技能 言语技能的一种形式。控制和调节写作活动进行的心智活动方式。在写作过程中形成。包括构思技能、表达技能和修...

2018-08-17 21:45:13 355

原创 50.实现 pow(x, 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 < x < 100.0n 是 32 位有...

2020-03-02 12:41:36 468

原创 面试题06. 从尾到头打印链表

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ import java....

2020-03-01 16:06:14 215

原创 面试题05. 替换空格

难度:简单请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”public class ReplaceSpace { public static void main(String[] args) { System.out.println(repalceSpac...

2020-03-01 12:22:31 282

原创 面试题20. 表示数值的字符串

验证给定的字符串是否可以解释为十进制数字。例如:“0” => true" 0.1 " => true“abc” => false“1 a” => false“2e10” => true" -90e3 " => true" 1e" => false“e3” => false" 6e-1" => true" 99e2.5 ...

2020-03-01 01:46:51 167

原创 finally语句到底在return之前还是之后执行?

在finally语句块执行的前提下,讨论finally语句到底在return之前还是之后。

2020-03-01 01:32:40 986

原创 数组中的重复数字

找出数组中重复的数字。“在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。”数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000import java.util.*;...

2020-02-27 00:22:29 152

原创 LeetCode46. 全排列——回溯

//计算全排列 public static void backtrack(int n, ArrayList<Integer> nums, List<List<Integer>> output, int first) { // if all integers are used up if (first == n) ...

2019-08-14 00:23:10 139

原创 股神

经过严密的计算,小赛买了一支股票,他知道从他买股票的那天开始,股票会有以下变化:第一天不变,以后涨一天,跌一天,涨两天,跌一天,涨三天,跌一天…依此类推。为方便计算,假设每次涨和跌皆为1,股票初始单价也为1,请计算买股票的第n天每股股票值多少钱?import java.util.Scanner;/** * @program: Aglorithm * @Date: today * @A...

2019-08-10 22:06:55 164

原创 LeetCode 17—— 回溯

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。class Solution { ...

2019-07-14 19:18:14 190

原创 LeetCode 34 在排序数组中查找元素的第一个和最后一个位置

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], ...

2019-07-12 10:25:41 291

转载 CAS笔记

CAS(Compare And Swap)独占锁是一种悲观锁,而 synchronized 就是一种独占锁,synchronized 会导致其它所有未持有锁的线程阻塞,而等待持有锁的线程释放锁。所谓乐观锁就是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。而乐观锁用到的机制就是CAS。在java中可以通过锁和循环CAS的方式来实现原子操作。java.util....

2019-06-30 20:24:39 149

原创 BlockingQueue 实现生产者消费者问题

FIFO 队列 :LinkedBlockingQueue、ArrayBlockingQueue(固定长度)优先级队列 :PriorityBlockingQueue提供了阻塞的 take() 和 put() 方法:如果队列为空 take() 将阻塞,直到队列中有内容;如果队列为满 put() 将阻塞,直到队列有空闲位置。import java.util.concurrent.ArrayBl...

2019-06-29 19:55:37 407

原创 单例设计模式

单例模式主要是为了避免因为创建了多个实例造成资源的浪费,且多个实例由于多次调用容易导致结果出现错误,而使用单例模式能够保证整个应用中有且只有一个实例。//单例模式的饿汉式class Singleton1{ private static Singleton1 instance = new Singleton1(); //私有构造方法,防止new对象 private Sin...

2019-06-28 16:14:13 129

原创 Java中对象的浅拷贝与深拷贝

浅拷贝:拷贝对象与原始对中的引用类型引用同一个对象(指针指向同一个对象)public class CloneDemo implements Cloneable{ private int[] arr; public CloneDemo(){ arr = new int[10]; for (int i = 0; i < arr.length; ...

2019-06-28 15:32:05 207

转载 同步阻塞BIO与同步非阻塞NIO

//模拟服务器端import java.io.InputStream;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.net.Socket;import java.text.SimpleDateFormat;import java.util.Date;import java.util...

2019-06-27 20:58:55 228

转载 异常相关

Java的异常(包括Exception和Error)分为检查异常(checked exceptions)和非检查的异常(unchecked exceptions)。其中根据Exception异常进行划分,可分为运行时异常和非运行时异常。检查异常(checked exception)?就是编译器要求你必须处置的异常。不知道你编程的时候有没有遇到过,你写的某段代码,编译器要求你必须要对这段代码...

2019-06-25 21:38:49 185

原创 LeetCode 33——搜索旋转排序数组

假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], ta...

2019-06-22 16:28:21 133 1

原创 LeetCode 80——删除排序数组中的重复项 II

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考虑数组中超出新长度后面的...

2019-06-19 16:46:53 140

原创 LeetCode 26——删除排序数组中的重复项

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 n...

2019-06-19 15:32:09 163

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

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。注意:你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.//相邻的节点位置交换 1-> 2 -> 3 -> 4 => 2 -> 1 -> 4 -> 3;publi...

2019-06-18 11:40:54 185

原创 LeetCode20 有效的括号

class Solution { public boolean isValid(String s) { Map<String, Integer> map = new HashMap<>(); map.put("(", 1); map.put(")", -1); map.put("{", 2); ...

2019-06-16 17:35:47 117

原创 LeetCode 19 删除链表的倒数第N个节点

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?/** * Definition for singly-linked lis...

2019-06-15 14:24:41 92

原创 LeetCdoe 801——使序列递增的最小交换次数(动态规划)

有两个长度相等且不为空的整型数组 A 和 B 。我们可以交换 A[i] 和 B[i] 的元素。注意这两个元素在各自的序列中应该处于相同的位置。在交换过一些元素之后,数组 A 和 B 都应该是严格递增的(数组严格递增的条件仅为A[0] < A[1] < … < A[A.length - 1])。给定数组 A 和 B ,请返回使得两个数组均保持严格递增状态的最小交换次数。假设给定...

2019-06-13 15:56:56 496

原创 分发糖果

老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例 1:输入: [1,0,2]输出: 5解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。示例 2:...

2019-06-11 17:19:57 361

原创 只出现一次的数字——位运算

只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4class Solution { public int singleNumber(...

2019-06-11 15:37:19 145

转载 面试中的怎么体现出算法

很多前端都觉得算法是特别高大上的东西,但其实和人工智能这种硬核(虽然调参也不怎么硬核)的东西不同,算法可能会复杂,也可能很容易理解。比如这道题就是一个非常经典的题目,很多公司的面试都会聊这道题。这道 medium 难度的问题,很适合展示一个有着丰富生活经验的程序员,如何在不需要算法基础的情况下,凭借人类的聪明才智,找到解决方案。热身首先,先找一下它的简化版 2sum 来热热身。最...

2019-06-11 15:23:31 370

原创 动态规划小结

package dynamic_programming;/** * @program: Aglorithm * @Date: 2019/6/6 16:36 * @Author: Kyrie * @Description: * * 动态规划小结 */public class Dynamic_Programming_Summary {}

2019-06-11 14:39:19 193

原创 二分查找及其变种小结

//注意边界条件//二分查找的基本原型//二分查找的变种及改进//二分查找最接近目标数(貌似没成功)

2019-06-08 22:56:25 214

转载 大数运算

public class BigNumUtil { /** * 大数相乘 * @param a * @param b * @return */ public static String multi(String a,String b){ //1.判断相乘之后的符号 char signA = a.ch...

2019-06-06 16:14:48 107

原创 LeetCode 23合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4/** * Definition for singly-linked list. * public class ListNode { * in...

2019-06-06 14:34:04 88

原创 动态规划——LeetCode121 买卖股票的最佳时机

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能...

2019-06-04 23:12:00 145

原创 动态规划——LeetCode120三角形最小路径和

给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点(容易理解错)上。例如,给定三角形:[    [2],   [3, 4],  [6, 5, 7], [4, 1, 8, 3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很...

2019-06-04 21:33:17 138

原创 动态规划——LeetCode63 不同路径 II

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[[0,0,0],[0...

2019-06-04 17:15:06 124

转载 多线程(转载)

         转载出处http://blog.youkuaiyun.com/evankaka        写在前面的话:此文只能说是java多线...

2019-06-04 11:56:05 115

原创 动态规划—— LeetCode62 不同路径

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向...

2019-06-04 11:10:27 170

原创 动态规划——LeetCode爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 ...

2019-06-03 22:41:47 137

原创 动态规划——LeetCode最小路径和

给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。/*class Solution { public int minPathSum(int[][] ...

2019-06-03 21:40:22 163

原创 动态规划问题

package test.com;public class Hui07_Dynamic { /* 求解金矿问题 动态规划--最优化 贪心算法--prim算法 */ //递归版本 public static int cal(int[] p, int len){ if(len == 0){ ...

2019-06-03 14:20:02 127

原创 LeetCode16——最接近的3数之和

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).class Solution { p...

2019-06-03 00:56:04 168

空空如也

空空如也

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

TA关注的人

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