- 博客(37)
- 收藏
- 关注
原创 Java多线程基础
Java多线程基础线程的基本操作新建线程终止线程线程中断等待(wait)和通知(notify)挂起(suspend)和继续执行(resume)线程等待线程结束(join)和谦让(yield)JDK并发包重入锁:ReentrantLock重入锁的搭档:Condition条件允许多个线程同时访问:信号量(Semaphore)ReadWriteLock 读写锁CountDownLatch线程的基本操作新建线程使用start()方法,可以新创建一个线程并让这个线程执行其run()方法。Thread t1 =
2021-03-07 22:16:42 515 3
原创 Kubernetes学习笔记-Pod常用命令总结
pod基础操作通过YAML文件创建podkubia.manual.yamlapiVersion: v1kind: Podmetadata: name: kubia-manualspec: containers: - image: luksa/kubia name: kubia imagePullPolicy: Never ports: - c...
2020-04-24 21:43:21 694
原创 CentOS安装Kafka伪集群环境
在CentOS单机中安装Kafka伪集群环境需要以下支持:JavaZookeeperKafka1. Java安装步骤一:下载、解压jdk包从官网获取jdk包:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html选择下载 jdk-8u241-linux-x64.tar下载完成后进行解压tar ...
2020-04-02 18:20:39 340
原创 排序的总结
排序总结前言:排序的知识从很早以前就学了,但一直记的不是很牢固,所以今天就把主要的排序都做一些整理,以后需要用到的时候可以进行快速回忆。以下的所有讨论都是基于非递减排序的。冒泡排序流程:每次都进行相邻元素的对比,如果前一个数字大于后一个数字,则进行交换,之后对每一对元素都进行相同的操作,经过一轮扫描之后最大的元素就被放置在最后一个元素。然后再从头进行同样的流程,只是接下来扫描的截止位置减少了...
2019-12-12 16:35:00 207
原创 【LeetCode】31. 下一个排列
题目描述链接:下一个排列实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1解答思路主要流程找出最大...
2019-11-08 16:10:49 156
原创 【LeetCode】9. 回文数
题目描述链接:回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一...
2019-11-07 22:58:35 107
原创 【LeetCode】33. 搜索旋转排序数组
题目描述链接:搜索旋转排序数组假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例1:输入: nums = [4,5,...
2019-11-07 22:26:52 104
原创 【LeetCode】143. 重排链表
题目描述 题目原链接:重排链表给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.解释: 因为无重复字符的最长子串是 “abc”,所以其长...
2019-11-06 14:37:52 206
原创 【LeetCode】3. 无重复字符的最长子串
题目描述 题目原链接:无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: "pwwkew"输出: 3...
2019-11-04 19:28:18 107
原创 【LeetCode】2. 两数相加
题目描述 题目原链接:两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出...
2019-11-04 18:51:48 128
原创 【LeetCode】23. 合并K个排序链表
题目描述 K 个一组翻转链表给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当...
2019-10-29 19:03:43 91
原创 【LeetCode】148. 排序链表
题目描述链接:排序链表在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例1:输入: 4->2->1->3输出: 1->2->3->4示例2:输入: -1->5->3->4->0输出: -1->0->3->4->5解答思路由于时间复杂度要求是O(n log n),所...
2019-10-29 10:30:21 92
原创 PHP 设计模式
单例模式<?phpclass Uni { static private $instance; private $config; private function __construct($config) { $this->config = $config; } private function __clone() ...
2019-10-25 11:27:49 112
原创 计算机网络常见问题汇总
TCP基础知识TCP三次握手第一步:客户端的TCP向服务端的TCP发送一个TCP报文段,SYN=1。第二步:当报文段到达服务端时,服务器从数据报TCP发送允许连接的报文段(SYNACK报文段)。SYN=1。第三步:收到SYNACK报文段后,客户为该连接分配缓存和变量。客户端向服务端发送一个报文段,对服务器的允许连接进行确认。SYN=0。四次挥手第一步:客户端发出一个关闭连接的报文段;...
2019-08-16 11:40:30 4211
原创 LeetCode 517 超级洗衣机 解法
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/super-washing-machines著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述:假设有 n 台超级洗衣机放在同一排上。开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的。在每一步操作中,你可以选择任意 m (1 ≤ m ≤ n) 台洗衣机,...
2019-06-11 23:46:03 785 1
原创 Mysql 由单引号引发的性能问题
最近工作的时候遇到个问题就是要去优化一条Mysql的查询,想了许多方法都不尽人意,没能把查询速度提高到理想的速度,后来无意间把查询的条件加上单引号,性能就大大提高了,为什么加了单引号性能就会变得这么快呢?优化前的sqlselect table_name,yet_totalSize,day1_totalSize,day1_rate,day7_rate,day7_totalSize from (...
2019-06-10 12:25:27 347
原创 字节跳动笔试题总结
题目1链接:https://www.nowcoder.com/questionTerminal/66b68750cf63406ca1db25d4ad6febbf来源:牛客网题目描述:为了不断优化推荐效果,今日头条每天要存储和处理海量数据。假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内注册的用户(标号相连的一批用户...
2019-06-08 22:48:29 11364
原创 拼多多笔试题 回合制游戏
拼多多笔试题 回合制游戏昨晚心血来潮,拿了一份校招真题练练手,无奈这道题一直没有AC,只有75%的通过率,用了深度优先搜索+记忆化搜索最终还是会有数据超时,看了网上其他人的做法才恍然大悟,根本不需要用递归去实现,题目本身就是数学问题。链接:https://www.nowcoder.com/questionTerminal/17a083854661490e85e5bb6c4b26e546来源:...
2019-06-08 16:52:24 1358
原创 递归过程以及master公式
递归本质以下面的例子说明:public static int process(int[] arr, int L, int R) { if (L == R) { return arr[L]; } int mid = L + ((R - L) >> 1); int leftMax = process(arr, L, mid); int rightMax = process...
2019-04-13 23:18:23 1122 3
原创 C++ 引用变量
C++ 引用变量创建引用变量引用和指针的区别将引用作为函数参数临时变量、引用参数将引用用于结构为什么要返回引用返回引用时需要注意的问题引用是已定义的变量的别名。通过将引用变量用作参数,函数将使用原始数据,而不是其副本。创建引用变量int rats;int& rodents = rats;int& 指的是指向int的引用。#include <iostream>...
2019-03-09 14:40:08 235
原创 数组的Partition与快速排序
数组的Partition与快速排序数组的Partition快速排序没有任何改进的快排稍微改进的快排彻底改进的快排快速排序的时间复杂度分析快速排序的Code数组的Partition在数组中取一个数p,把&amp;lt;=p的数都放在左边,&amp;gt;p的数放在右边,数的排序可以是无序的。流程:在a[0]之前建一个&amp;lt;=区,i指向a[0]若a[i] &amp;lt;= p, a[i]与&amp;lt;=区的
2019-03-01 18:30:51 807
原创 归并排序-总结
数据结构【排序】总结归并排序归并排序时间复杂度:O(n*logn)空间复杂度:O(n)public class MergeSort { public static void mergeSort(int[] arr) { if (arr == null || arr.length &amp;amp;lt;= 1) { return; } ...
2019-02-24 23:01:08 360
原创 数据结构-堆(Heap)
数据结构-堆堆的主要知识点堆排序堆的主要知识点1.堆结构就是用数组实现的完全二叉树结构2.完全二叉树中如果每棵子树的最大值都在顶部就是大根堆3.完全二叉树中如果每棵子树的最小值都在顶部就是小根堆4.堆结构的heapInsert与heapify操作5.堆结构的增大和减少6.优先级队列结构,就是堆结构(在Java中是PriorityQueue)堆是用数组实现的,二叉树的结构实际上不存在...
2019-02-16 17:10:57 359
原创 Java-哈希表、有序表的一些用法
Java-哈希表、有序表的一些用法哈希表HashMap常见用法如何删除HashMap中指定值的元素HashSet各种用法有序表TreeMapTreeSet哈希表哈希表的操作时间复杂度都是O(1),与数据量无关,但常数时间很大。基础类型:按值传递,内存里占用的是这个变量的实际大小。非基础类型:按引用传递,内存占用的是这个变量内存地址的大小。HashMap有key、有value常见用法...
2019-02-05 20:42:38 1834
原创 数据结构【树】-题目总结
数据结构【树】-题目总结树的宽度优先遍历(Java)求二叉树的宽度树的解题套路如何判断一棵二叉树是否为搜索二叉树如何判断一棵二叉树是否为平衡二叉树如何判断一棵二叉树为满二叉树如何判断一棵二叉树为完全二叉树在一棵二叉树中,求两个给定节点的最低、公共祖先节点树的宽度优先遍历(Java)思路没什么好讲的,主要是用队列去实现。直接看code就可以明白。class Node { Node left;...
2019-02-03 18:40:39 479
原创 TypeScript-类、函数
TypeScript-类、函数类公共,私有与受保护的修饰符readonly修饰符存取器高级技巧构造函数函数可选参数和默认参数剩余参数重载类公共,私有与受保护的修饰符public:在TypeScript中,成员默认为public,即使不使用修饰符。private:当成员被标记成 private时,它就不能在声明它的类的外部访问。protected:protected修饰符与 private...
2019-01-19 21:16:58 436
原创 TypeScript-基础类型
TypeScript-基础类型基础类型布尔值数字字符串数组元组Tuple枚举AnyVoidNull和UndefinedNeverObject类型断言基础类型TS支持和JS几乎相同的数据类型,此外还增加了枚举类型。布尔值let isDone: boolean = false;数字和JS一样,TS里所有的数字都是浮点数,类型为number。let num: number = 10;...
2019-01-18 17:09:22 405
原创 Angular-表单相关
Angular-表单相关响应式表单把表单控件分组嵌套的表单组部分模型修改使用 FormBuilder 来生成表单控件简单表单验证使用表单数组管理动态控件响应式表单响应式表单提供了一种模型驱动的方式来处理表单输入,其中的值会随时间而变化。要点:1.从@angular/forms导入ReactiveFormsModuleimport { ReactiveFormsModule } from ...
2019-01-18 16:03:12 349
原创 Angular:Observable与RxJS
Angular:Observable与RxJS的相关知识点Observable(可观察对象)基本用法定义观察者订阅错误处理RxJS操作符错误处理重试失败的可观察对象Angular中的可观察对象事件发送器 EventEmitterHTTPAsync管道路由器响应式表单Observable(可观察对象)基本用法创建一个Observable实例,其中定义了订阅函数(subscribe),供消费者调...
2019-01-08 23:48:09 664
原创 Angular-组件交互总结
Angular-组件交互总结通过输入型绑定把数据从父组件传到子组件通过setter截听输入属性的变化父组件监听子组件的属性父组件子组件父组件与子组件通过本地变量互动父组件调用@ViewChild()通过输入型绑定把数据从父组件传到子组件hero-child.component.tsimport { Component, Input } from '@angular/core';impor...
2019-01-06 17:58:24 449
原创 剑指Offer23:链表中环的入口节点
题目:给一个链表,若其中包含环,请找出该链表的环的入口节点,否则,输出null。思路:解决这个问题的第一步是先确定链表是否有环,有的话,我们计算出链表环的长度,否则直接返回null。在计算出环的长度n后,我们设置两个指针pNode1、pNode2指向链表的头节点,然后让pNode1先走n步后,再让pNode1与pNode2同时移动,相遇点就是链表中环的入口节点了。 为什么这种方法可以得到入口...
2018-08-15 16:58:46 148
原创 剑指Offer36:二叉搜索树与双向链表
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路:二叉搜索树的中序遍历是排序的,所以我们可以基于中序遍历将其转换为一个排序的双向链表,将节点的左子节点改为双向链表的前驱节点,而右子节点改为双向链表的后继节点。public class Solution { TreeNode head=null; Tr...
2018-08-15 16:12:11 137
原创 剑指Offer25:合并两个排序的链表
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:将链表1和链表2的节点从头开始进行比较,两个节点中较小的作为头结点,然后移动到下一个节点再进行比较。基于递归的思想,每次都求出一个头节点,最终就能把链表合并起来。public ListNode Merge(ListNode list1,ListNode list2){ if ...
2018-08-15 15:49:24 116
原创 剑指Offer24:反转链表
题目:输入一个链表,反转链表后,输出新链表的表头。链表定义:/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/思路:反转时,需要把节点的指针指向前一个节点,所以我们需要设定一个前驱节点pPr...
2018-08-15 10:27:13 114
原创 剑指Offer22:链表中倒数第k个节点
题目:输入一个链表,输出该链表中倒数第k个节点。本题从1开始计数。思路:假设链表中有n个节点,那么倒数第k个节点就是第n-k+1节点。所以我们只要遍历一次链表求得长度n,然后再从头往后走n-k+1步就可以得到所需节点了。可是这种方法需要遍历2次链表,下面我们尝试一种只遍历一次链表的方法。 设置两个指针p1,p2指向头节点,p1先走k-1步,然后p1和p2再一起遍历直到p1指向尾节点时,p2所...
2018-08-14 20:34:02 136
原创 剑指Offer18:删除链表的节点
题目一:在O(1)时间内删除链表节点链表定义:class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}思路:我们知道,常规删除链表节点需要从头开始遍历,需要O(n)的时间。那么要如何才能实现O(1)删除节点呢? 很简单...
2018-08-14 20:13:48 123
原创 剑指Offer16:数值的整数次方
面试题16:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。思路:分情况考虑,base==0和base!=0,exponent>0和exponent<0。 当base==0,exponent<=0时,结果出错; 当base==0,exponent>0时,结果为0; 当base!=0,exponent&g...
2018-08-14 19:06:37 148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人