- 博客(26)
- 收藏
- 关注
原创 Java基础语法
Java概述Java平台JVM:Java虚拟机Java程序执行过程:一次编译,到处执行。JDK:Java语言的软件开发工具包-javac 编译器,将源程序转为字节码,二进制文件-java :运行编译后的java程序(.class后缀的)JRE:java运行环境。Java区分大小写Java程序的结构类{ 方法{ … }}class hello{ public static void main(){ System.out.println(“hi”
2022-01-16 16:34:04
236
原创 Java语法
跨平台原理c\c++跨平台原理使用平台相关的编译器生成对应平台的可执行文件在不同平台上需要多次编译Java跨平台原理JVM:Java虚拟机Java开发效率高跨平台不用操心编译器垃圾回收机制不用手动管理内存不用担心内存泄漏不用担心循环引用技术生态圈强成熟、强大的第三方库资源丰富Java先有类,再有方法方法 === 函数注释///* *//** * 求两个数的和 * @param a * @param b
2022-01-16 16:27:18
189
原创 操作系统--进程管理
1.进程实体1.1.为什么需要进程1.2.进程的实体1.2.1.主存中的进程形态标识符:唯一标记一个进程,用于区别其他进程进程状态:标记进程的进程状态,如:运行态程序计数器:指向进程即将被执行的下一条指令的地址内存指针:程序代码,进程数据相关指针上下文数据:进程执行时处理器存储的数据IO状态信息:被进程IO操作所占用的文件列表记账信息:使用处理器时间,时钟数总和等进程控制块(PCB)1.2.1.进程与线程操作系统对进程的调度实际上是对进程里线程的调度。2.
2021-10-06 22:00:35
189
原创 操作系统概述
1.操作系统的演进1.1.多道程序设计早期批处理系统只能一次处理一个任务多道程序设计使得批处理系统可以一次处理多个任务多道程序设计是指在计算机内存中同时存放多个程序多道程序在计算机的管理程序之下相互穿插运行1.2.操作系统对程序的管理进程管理存储管理作业管理文件管理设备管理2.操作系统概览2.1什么是操作系统?为什么要有操作系统?操作系统是管理硬件,提供用户交互的软件系统为什么要有操作系统?2.2.操作系统的基本功能统一管理计算机资源实
2021-10-06 13:49:38
174
原创 计算机网络--物理层、数据链路层
1.计算机网络概述什么是计算机网络?计算机网络主要是由一些通用的、可编程的硬件互联而成,通过这些硬件,可以传送不同类型的数据,并且可以支持广泛和日益增长的应用。计算机网络不仅是软件概念,还包括硬件设备计算机网络不仅仅是信息通信,还可以支持广泛的应用计算机网络的分类2.计算机网络的发展简史ISP:网络服务提供方3.计算机网络的层次结构3.1.层次结构设计的基本原则分层设计的原因设计原则:各层之间相互独立每一层有足够的灵活性各层之间完全解耦3.2.OSI
2021-09-30 15:36:24
1027
原创 计算机网络——传输层
计算机网络——传输层解决如何通信?1.传输层概述使用端口(Port)来标记不同的网络进程端口(Port)使用16比特位表示(0~65535)常用端口:FTP: 21HTTP: 80HTTPS: 443DNS: 53TELNET: 232.UDP协议概述UDP(User Datagram Protocol):用户数据报协议UDP是一个非常简单的协议2.1.UDP协议头部2.2.UDP协议特点
2021-09-28 14:55:50
198
原创 php控制结构
ifswitch case适用于在验证多个可能的值时,不适用于判断范围。switch($today){ case 1 : echo "今天星期一"; break; case 2 : echo '今天星期二' break; default: echo'***'; }while$i = 0;while($i <= 10){ echo $i; $i++;}do while先执行,在判断。do{}while($i<10);for循环一般要
2021-08-26 08:09:38
139
原创 php运算符
一:算术运算符1.除数不能为0;2.两个特别大的整数相加,可能溢出,变为浮点型3.取模运算中,结果的正负仅取决于被除数。&a= 10;$b = -3;$ c=$a % $b;二:比较运算符运算,必有运算结果,比较运算符的运算结果是bool值。== :值相等===:值和类型都相等三:三元运算符$ c = ($a >= $b ? $a: $b)四:逻辑运算符&& || !五:递增递减运算符$a = 5;$b = $ a++;
2021-08-24 07:57:35
171
原创 Git常用命令
1.git status: 查看仓库状态2.git branch:查看当前分枝:3.git checkout :切换分支,git checkout zhenhao-test git switch:4.git checkout -b :创建新的分支,git checkout -b zhenhao-test git switch -c:5.git add: 添加文件,git add readme.txt6.**git commit -m:**提交信息,git commit -m7.git me
2021-08-14 17:38:14
172
1
原创 PHP变量
一:变量类型整型浮点型字符串布尔数组对象NULL资源NULL:没有值也没有类型, 只有一个值,$a = null;二:变量检测:isset($a);存在返回true,不存在返回false,对于NULL,isset返回false<?phpif(isset($b)){ echo'变量b存在';}else{ echo'变量b不存在';}三:变量类型检测:gettype,获取变量类型<?php$a = 1;echo gettype($a);判断是否是整型,s
2021-08-14 17:23:16
105
原创 玩转算法面试---习题LeetCode80. 删除排序数组中的重复项 II
题目描述:给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDupl
2021-01-07 11:04:41
177
1
原创 玩转算法面试---习题LeetCode26 删除排序数组中的重复项
题目描述:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组
2021-01-06 21:35:51
117
原创 玩转算法面试---习题LeetCode27 移除元素
题目描述:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,1,2,2,3,
2021-01-06 20:57:17
155
原创 玩转算法面试:数组问题1
LeetCode283 移动零facebook Bloomberg面试题题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数思路一:将数组中的非0元素取出,然后将取出的元素填补到原先的数组中,最后将数组末尾元素赋值为0;c++代码class Solution {public: void
2021-01-06 19:46:10
210
2
原创 玩转算法面试---如何写出正确的程序
数组问题在面试中很常见:排序:选择排序;插入排序;归并排序;快速排序查找:二分查找数据结构:栈;队列;堆如何写出正确的程序明确变量的含义循环不变量小数据调试(边界,特例)大数据量测试二分查找法:边界处理循环不变量:在循环中,声明的区间不变。控制区间边界,保证其含义不变二分查找1:循环不变量为[l…r]的范围内寻找targettemplate<typename T>int binarySearch(T arr[], int n, T target){ int l
2021-01-04 20:43:25
265
原创 面试中的时间复杂度分析
到底什么是大On表示数据规模。O(f(n))表示运行算法所需要执行的指令数,和f(n)成正比。二分查找法O(logn) 所需执行的指令数:alogn|–|-所需执行的指令数:bn|| | |
2020-12-30 12:17:32
277
原创 bobo老师玩转算法面试,如何准备算法面试?
算法面试只是面试中的一个环节误区算法面试并没有那么难。有选择的读《算法导论》等经典书籍,不能追求一步到位,学习切忌完美主义。高级数据结构和算法面试提及的概率很低。远达不到信息学竞赛难度算法面试准备范围不要轻视基础算法和数据结构,而只关注“有意思”的题目。各种排序算法基础数据结构和算法的实现:堆、二叉树、图…基础数据结构的使用:链表、栈、队列、哈希表、图、Trie、并查集…基础算法:深度优先、广度优先、二分查找、递归…基本算法思想:递归、分治、回溯搜索、贪心、动态规划…选择合
2020-12-28 17:55:37
338
原创 bobo老师玩转算法面试,如何准备技术面试?
算法面试是什么?算法面试需要有一个合理的思考路径;算法只是技术的一部分。不代表能够“正确”回答每一个算法问题,但是合理的思考方向其实更重要,也是正确完成算法面试问题的前提算法面试优秀不意味着技术面试优秀技术面试优秀不意味着能够拿到Offer算法面试的目的不是给出一个“正确”答案,而是展示给面试官你思考问题的方式。算法面试不是考试,把这个过程看作是和面试官一起探讨一个问题的解决方案。对于问题的细节和应用环境,可以和面试官沟通。这种沟通暗示着你思考问题的方式...
2020-12-28 15:24:36
1977
3
原创 LeetCode 771 宝石与石头 c++版
题目描述给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = “aA”, S = “aAAbbbb”输出: 3示例 2:输入: J = “z”, S = “ZZ”输出: 0注意:S 和 J 最多含有50个字母。J 中的字符不重复。思路使用set记录宝石的种类,然
2020-12-26 17:18:56
190
原创 剑指offer58—II 左旋转字符串 c++
题目字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出: “cdefgab”示例 2:输入: s = “lrloseumgh”, k = 6输出: “umghlrlose”限制:1 <= k < s.length <= 10000思路定义一个字符串,先将s中
2020-12-26 17:03:22
223
原创 leetcode 455. 分发饼干 c++版
leetcode 455. 分发饼干 c++版题目描述假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例 1:输入: g = [1,2,3], s = [1,1]输出: 1解释
2020-12-25 16:33:25
360
原创 LeetCode103. 二叉树的锯齿形层序遍历 C++版
题目给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回锯齿形层序遍历如下:[[3],[20,9],[15,7]]思路本题是二叉树的层序遍历的变形,区别在于本题是一行从左到右遍历,下一行从右到左遍历,交叉往返的之字形遍历。可以利用层序遍历,增加一个变量cnt来记录当前的层数(cnt从0开始),将所有的奇
2020-12-23 15:21:41
148
原创 力扣387. 字符串中的第一个唯一字符 C++版
**387. 字符串中的第一个唯一字符**描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = “leetcode”返回 0s = “loveleetcode”返回 2分析找出第一个不重复的字符,可以使用map记录字符串中字符的出现次数,遍历一遍得到每个字符出现的次数,然后在查找第一个map的值为1时的字符。c++代码class Solution {public: int firstUniqChar(string s) {
2020-12-23 10:44:01
176
原创 网络编程创建socket过程
**网络编程接受连接请求,创建套接字的过程**1.调用socket函数创建套接字2. 调用bind函数分配IP地址和端口号3. 调用listen函数转为可接收请求状态4. 调用accept函数受理连接请求。
2020-11-26 21:21:08
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人