自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (4)
  • 收藏
  • 关注

原创 【程序员面试金典】01.08.零矩阵

编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

2022-10-26 22:35:29 443 1

原创 【程序员面试金典】01.07.旋转矩阵

给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例 2:给定 matrix =[],原地旋转输入矩阵,使其变为:[]

2022-10-26 20:33:34 334

原创 【程序员面试金典】01.05. 一次编辑

字符串有三种编辑操作:插入一个英文字符、删除一个英文字符或者替换一个英文字符。给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。示例 1:输入:输出: True示例 2:输入:输出: False示例 3:输入:输出: True示例 4:输入:输出: False。

2022-10-22 15:10:18 525

原创 【程序员面试金典】01.06. 字符串压缩

字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例 1:输入:“aabcccccaaa”输出:“a2b1c5a3”示例 2:输入:“abbccd”输出:“abbccd”解释:“abbccd"压缩后为"a1b2c2d1”,比原字符串长度更长。

2022-10-22 13:08:49 176

原创 【程序员面试金典】01.04. 回文排列

回文排列

2022-10-12 23:45:58 442

原创 【设计模式】工厂方法模式

工厂方法模式

2022-09-30 14:57:20 89

原创 【设计模式】抽象工厂模式

抽象工厂模式

2022-09-29 17:16:26 334

原创 【程序员面试金典】01.03. URL化

URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。

2022-08-31 19:58:21 74

原创 【程序员面试金典】01.02. 判定是否互为字符重排

给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。

2022-08-30 23:18:00 302

原创 程序员面试金典(第6版)

程序员面试金典

2022-07-22 23:59:12 331

原创 【程序员面试金典】01.01. 判断字符是否唯一

实现一个算法,确定一个字符串s的所有字符是否全都不同。假使不允许使用额外的数据结构,又该如何处理?

2022-07-22 23:40:56 284

原创 RSA密钥对生成工具代码

利用Java自带包生成RSA算法公私密钥

2022-07-19 23:37:04 937

原创 排序算法(三):选择排序

一、算法原理首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。二、算法分析1、时间复杂度分析交换次数:交换元素的代码写在内循环之外,每次交换都能排定一个元素,因此交换的总次数是N。比较次数:选择排序的内循环只是在比较当前元素与目前已知的最小元素。比较次数为(N-1)+(N-2)+…+2+1=N(N-1)/2 ~ N2/2。所以

2020-09-22 10:22:30 207

原创 [LeetCode]860.柠檬水找零

860. 柠檬水找零题目描述:在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false ...

2019-11-22 21:10:09 273

原创 [LeetCode]1221. 分割平衡字符串

1221. 分割平衡字符串题目描述:在一个「平衡字符串」中,‘L’ 和 ‘R’ 字符的数量是相同的。给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。示例 1:输入:s = "RLRRLLRLRL"输出:4解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'...

2019-11-15 23:34:27 226

原创 [LeetCode]1217. 玩筹码

ssss

2019-11-15 22:47:58 165

原创 Linux 端口限流(tc + iptables)

一、相关概念报文分组从输入网卡(入口)接收进来,经过路由的查找, 以确定是发给本机的,还是需要转发的。如果是发给本机的,就直接向上递交给上层的协议,比如TCP,如果是转发的, 则会从输出网卡(出口)发出。网络流量的控制通常发生在输出网卡处。虽然在路由器的入口处也可以进行流量控制,Linux也具有相关的功能, 但一般说来, 由于我们无法控制自己网络之外的设备, 入口处的流量控制相对较难。本文将集中...

2019-10-30 23:24:51 7454

转载 CI持续集成介绍

互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI)。一、概念持续集成(Continuous Integration)指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集...

2019-10-21 23:46:41 317

原创 Git命令简写配置

git命令的简写能提高我们提交代码的效率,在linux下输入命令vim ~/.gitconfig,即可打开配置文件,并进行修改。下面分享我的git简写配置:[user] name = xxxxx email = [email protected][core] #git默认编辑器 editor = vim[alias] #add a = add #branch ...

2019-10-21 20:06:41 740

原创 [username] 不在 sudoers 文件中。此事将被报告。

遇到问题最近,为了配置gitlab开发环境,就在Ubuntu 16下创建了一个新的账号:gitdev。但是在gitdev账号下,切换其他用户,输入密码就会提示如下错误:gitdev@amars:/home$ sudo sugitdev 不在 sudoers 文件中。此事将被报告。分析原因究其原因,主要还是用户gitdev没有权限执行sudo。因为有权限的用户都在/etc/sudoer...

2019-10-18 23:36:59 989

原创 Ubuntu16.4 Rail环境搭建

1.RVM安装添加PPA并安装软件包:$sudo apt-add-repository -y ppa:rael-gc/rvm更新源列表$sudo apt-get update安装Rvm$sudo apt-get install rvm更改终端窗口:为了始终加载RVM,请将Gnome终端更改为始终执行登录。在终端窗口,单击编辑(Edit) > 首选项(Profi...

2019-09-29 21:41:08 203

原创 SSH(MobaXterm)远程连接Ubuntu16.04报错:Network error: Connection refused

SSH(MobaXterm)远程连接Ubuntu16.04报错:Network error: Connection refused新安装的Ubuntu由于没有默认安装SSH,所以通过SSH远程连接室会提示如下的错误:Network error: Connection refused。解决方法在Ubuntu上安装openssh。安装步骤1.执行安装命令:sudo apt install o...

2019-09-29 19:51:52 7480 9

原创 设计模式一:单例模式

ddddddddddddd

2018-09-25 23:52:29 83

原创 排序算法(六):堆排序

目录一、简介二、算法原理1、堆2、维护堆的性质3、建堆4、堆排序算法三、算法分析1、时间复杂度分析2、算法稳定性分析四、算法实现一、简介 堆排序(heapsort)。与归并排序一样,但不同于插入排序的是,堆排序的时间复杂度是。而与插入排序相同,但不同于归并排序的是,堆排序同样具有空间原址性:任何时候都只需要常数个额外的元素空间存储临时数...

2018-09-13 22:57:28 245

原创 排序算法(五):归并排序

待编辑/** * 归并排序 * * @author YangJinyang * @date 2018/8/12 */public class MergeSortClass { public static void mergeSort(int[] a) { int[] temp = new int[a.length]; sort(a, 0,...

2018-09-13 22:57:07 81

原创 排序算法(四):快速排序

import java.util.Arrays;/** * QuickSort Class * * @author YangJinyang * @date 2018/05/12 */public class QuickSortClass { //测试 public static void main(String[] args){ int[] arr...

2018-09-13 22:56:31 81

原创 排序算法(三):选择排序

待编辑/** * 选择排序 */public class SelectionSortClass { public static void sort(int[] a) { int N = a.length; for (int i = 0; i < N; i++) { int min = i; f...

2018-09-13 22:56:07 72

原创 排序算法(二):插入排序

目录一、算法原理二、算法分析1、时间复杂度分析()2、算法稳定性分析(稳定)三、算法实现一、算法原理 插入排序,对于少量元素的排序,是一种有效的算法。 插入排序的工作方式像许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌面向下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌正确的位置,我们从右向左将它...

2018-09-13 22:54:56 170

原创 排序算法(一):冒泡排序

目录一、算法原理二、算法改进三、算法分析四、算法实现一、算法原理冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。一趟排序之后,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个(最后一个已经有序)。 持续每次对越来越少的元素...

2018-08-12 20:44:38 275

原创 Maven无法下载依赖问题解决办法(公司内网,设置代理)

找到maven解压目录(D:\Program Files\Java\maven\apache-maven-3.5.4\conf)下的setting.xml,将proxies属性下注释的内容复制出来,设置host和port属性即可:&lt;proxies&gt; &lt;!-- proxy | Specification for one proxy, to be used i...

2018-07-19 19:22:11 4744

原创 Window7 自动更改ip脚本

根据需要更改脚本代码中的addr(ip)、mask(子网掩码)、gateway(默认网关)以及两个dns地址即可。脚本创建步骤  1、新建文本文件  2、复制以下脚本代码  3、另存为所有文件,文件名为"ip.bat"@echo offclsecho IP地址更改小工具echo.echo 设置 IP1 请按 1echo.echo 设置 IP2 请按 2echo.echo 恢复自动...

2018-05-10 22:14:28 5090

原创 京东2017校招编程题汇总-第2题

[编程题] 进制均值题目描述尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题,现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示一个数,如十进制数123表达为16进制时只包含两位数7、11(B),用八进制表示为三位数1、7、3,按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11,。 ...

2018-04-09 12:32:45 241

原创 面试题47:不用加减乘除做加法

题目描述写一个函数,求两个整数之和,要求在函数体内不准用+、-、×、÷四则运算符号。思路将十进制加法分为三步:1、各位相加,不进位。2、计算进位。3、将前两个结果加起来。将十进制加法转为二进制加法,结果也是三步走。1、各位相加,不进位。发现0加0、1加1的结果都是0,0加1、1加0的结果为1。这和异或一致,因此用异或代替。2、计算进位。只有1加1会出现进...

2018-04-04 10:58:08 89

原创 面试题10:二进制中1的个数

题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 时间限制:1秒 空间限制:32768K 知识点 位运算思路 1、先判断整数二进制表示中最右边一位是不是1。接着把输入的整数右移一位,此时原来处于从右边数起的第二位被移到最右边了,再判断是不是1。这样每次移动一位直到整个整数变成0 为止。现在的问题变成怎么判断一个整数的最右边是不是1了。这很简单,只要把整数和1做位与运

2017-08-23 21:31:20 195

原创 面试题9-4:矩形覆盖

热度指数:96595 题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 时间限制:1秒 空间限制:32768K 知识点 循环与递归思路 同跳台阶,斐波那契数列代码(java) 运行时间: 12 ms 占用内存:8408K public class Solution { public int

2017-08-20 20:54:26 269

原创 面试题9-3:变态跳台阶

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 时间限制:1秒 空间限制:32768K 知识点 循环递归思路 总结规律: f(1) = 1 f(2) = f(2-1) + f(2-2) =2*f(1) //f(2-2) =1=f(1)表示2阶一次跳2阶的次数。 f(3) = f(3-1) + f(3-2)

2017-08-19 14:36:15 171

原创 面试题9-2:跳台阶

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 时间限制:1秒 空间限制:32768K 知识点 循环递归思路 总结规律:f(1) = 1, f(2) = 2, f(3) = 3, f(4) = 5。由此得出f(n) = f(n-1) + f(n-2),但是为什么会出现这样的规律呢?假设现在6个台阶,我们可以从第5跳一步到6,这样的话有多少

2017-08-19 13:37:21 228

原创 面试题9-1:斐波那契数列

题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39 时间限制:1秒 空间限制:32768K 思路 方法1:递归法,系统会让一个超大的n来让Stack Overflow,所以递归就不考虑了 方法2:迭代法,用f1和fn保存计算过程中的结果,并复用起来代码 运行时间:10 ms 占用内存:8280Kpublic class Solutio

2017-08-18 20:47:07 195

原创 C# List<T> Add方法循环添加时只保存了最后一次的数据(覆盖问题)

问题原因: 对于List.Add(),如果T是基本类型(值),则添加的为值;若T为引用类型(对象),则添加的为引用。 所以,循环添加时,添加的都是同一个对象引用,对象的成员值改变,List中所有对象的值就改变了。解决方法: 每次在改变值之前重新new一下对象。

2017-08-16 11:17:16 7765 2

原创 面试题5-从头到尾打印链表

题目描述 输入一个链表,从尾到头打印链表每个节点的值。 时间限制:1秒 空间限制:32768K 本题知识点: 链表 思路1 递归,实现链表从尾到头插入。代码 语言:Java 运行时间: 16 ms 占用内存:8320K/*** public class ListNode {* int val;* ListNode next = nul...

2017-08-13 21:38:39 167

minio docker镜像

minio docker镜像

2021-11-11

mingw64.rar

MinGw64 6.0 解压之后,Clion设置时直接选择mingw64目录即可。 最近配置Clion开发环境时,下载MinGw总是不合适。现在将资源分享出来,供大家下载使用。

2019-11-24

Java并发编程的艺术.pdf 非扫描版 高清

第1章介绍Java并发编程的挑战,向读者说明进入并发编程的世界可能会遇到哪些问题,以及如何解决。第2章介绍Java并发编程的底层实现原理,介绍在CPU和JVM这个层面是如何帮助Java实现并发编程的。

2018-05-05

空空如也

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

TA关注的人

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