![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 53
...xiexiaohan
这个作者很懒,什么都没留下…
展开
-
git submodule的使用
git submodule的使用,以及更改子模块的情况解析原创 2022-12-02 16:28:47 · 447 阅读 · 1 评论 -
python 切片与取值 超出索引范围的问题,浅拷贝
python使用list和string时,可以用index取值比如list1 = [1,2,3]list1[3]list2 = []list2[-1]IndexError: list index out of range访问:当访问索引超出其长度的列表 中元素时,无法返回值且报下标越界错误list1 = []list1[:-1]list[1:4]切片 :当切片时,是对原始列表进行切片复制,超出范围,则为空,不会报错切片时,是对list进行浅拷贝# 直接赋值,指向同一个内存地址na原创 2021-11-13 18:13:10 · 2036 阅读 · 0 评论 -
python负数存储原理,补码存储
补码正数补码是本身负数补码是 符号位不变,其余逐位求反再加1。python中负数补码python中的正负数[正数]都是以补码的形式存在的。在c中负数直接使用补码的方式存储的[用2的补码的方式表示负数],但是在python中 是用原码+’-'产生的。而且十进制、十六进制下的负数表示不同。结果:a+b就是c的二进制 => -0b11100 => 1 11100a+b的补码 => 取反加1 => 1 0000000000…00 00011 + 1 => 1 111原创 2021-11-02 00:07:52 · 798 阅读 · 0 评论 -
在mac下 Vue2和Vue3并存 全局Vue2环境创建Vue3新项目(Vue cli2和Vue cli4)
在保留Vue2全局环境的情况下创建并运行Vue3的新项目默认已有vue2的全局环境新建一个文件夹,控制台进入该文件夹路径下首先npm init创建package.json文件然后npm install @vue/cli注意不要加-g,这个是全局安装的命令vue3需要的脚手架是vue cli4.x然后进入新建文件夹的目录下,找到vue3/node-moudles/.bin/vue,按住command+shift+. ,显示隐藏文件和文件夹,把vue改成vue3。然后回到终.原创 2021-07-12 20:07:45 · 1046 阅读 · 2 评论 -
vue.js跑serve的时候报错:TypeError: Cannot read property ‘upgrade‘ of undefined
是vue.config的跨域配置格式出错检查这里,或者直接注释掉就行原创 2021-07-06 15:41:32 · 153 阅读 · 1 评论 -
内网中设备通过一台主机做端口转发联通外网( TPLink路由映射,端口转发,windows自带端口转发netsh interface portproxy)
文章目录背景描述需求方案配置有限网卡和路由器在windows上做端口转发背景描述一台可以联通外网的路由器(tplink)一台有无线网卡的计算机n台内网设备需求需要让所有的设备都可以被外网访问(如可以同时使用很多设备的远程桌面),内网设备通过交换机连接,其中有一台计算机拥有无线网卡,可以和路由器连接路由器太远不能直接把路由器连在交换机上方案配置有限网卡和路由器我们把有限网卡的计算机称为计算机A,假设内网的网段是192.168.0.x,如图,配置路由器的ip为192.168.1.原创 2021-07-06 11:37:08 · 990 阅读 · 0 评论 -
Hash表、散列表、Hash算法是什么,以及应用场景 + 例题解析
Hash表是什么Hash表(哈希表)也叫散列表。散列表用的是数组支持按照下标随机访问数据的特性,如果没有数组,就没有散列表。比如 要存储100个学生的成绩,现在有他们的学号如M202070023,M代表是研究生,2020代表是2020年入学的,70是学院的编号,023代表是这个学生在学院的人数编号。我们可以只取学号的后三位,对应放入相应的数组下标下,从1到100,这样在查询的时候,就可以直接通过下标来获取,时间复杂度为O(1)只取后三位这样的操作就叫Hash函数或者散列函数,而散列函数计算得到原创 2021-05-05 16:59:42 · 471 阅读 · 1 评论 -
桶排序、计数排序、基数排序 -- 大数据排序,线性排序以及应用场景
桶排序桶排序其实就是把数据分到各个桶中,比如把100个数据到10个桶中,然后每个桶再进行排序比如快排,桶和桶之间也是有顺序的桶排序是线性排序,也就是时间复杂度为O(n)假设数据有 n 个,把它们均匀地划分到 m 个桶内每个桶里就有 k=n/m 个元素在快排那里我们分析过,快排的时间复杂度为O(nlogn)那么每个桶内的时间复杂度为 O(k * logk)m 个桶排序的时间复杂度就是 O(m * k * logk),因为 k=n/m,所以整个桶排序的时间复杂度就是 O(n*log(n/m))原创 2021-04-24 22:55:57 · 1096 阅读 · 1 评论 -
快速排序 快排 leetcode215题 性能分析(时间空间复杂度)
背景解题-图片来自geek快排:如果要排序数组中下标从 p 到 r 之间的一组数据,我们选择 p 到 r 之间的任意一个数据作为 pivot(分区点)。将小于 pivot 的放到左边,将大于 pivot 的放到右边,将 pivot 放到中间可以这样放置但是这样就不是原地的了,所以优化成如图class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: r = len(nu原创 2021-04-21 00:24:31 · 216 阅读 · 0 评论 -
归并排序 递归 leetcode215题 性能分析(时间空间复杂度)
背景解题用归并排序归并就是分解再合并的过程,主要涉及两个函数一个是分解一个是合并两个子数组class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: Solution.mergeSort(nums) return nums[k-1] def mergeSort(nums:List[int]): n = len(nums)原创 2021-04-20 23:57:22 · 197 阅读 · 0 评论 -
链表实现插入排序 leetcode148题 性能分析(时间空间复杂度稳定性)
背景插入排序代码插入排序就是从第一个节点开始,比较当前节点的左边的节点,找到合适的位置插入用链表实现插入排序# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = next##################################用来练习插入排序###原创 2021-04-20 23:01:52 · 647 阅读 · 1 评论 -
链表实现冒泡排序 leetcode148题 性能分析(时间空间复杂度稳定性)
背景用链表来实现冒泡排序# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = next##################################用来练习冒泡排序###########################class Solution:原创 2021-04-20 21:11:57 · 207 阅读 · 0 评论 -
http协议是什么?http协议的由来和发展
http协议解析–第一篇http协议的由来http协议是什么?在说http的历史之前,我们先来说清楚http协议是什么?[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传随便百度一下,就会出来上万条的检索结果,其中都会提到“Http就是超文本传输协议”(英文:HyperText Transfer Protocol,缩写:HTTP),没错!这就是http的定义,ht...原创 2020-04-24 15:28:43 · 1899 阅读 · 2 评论