- 博客(58)
- 资源 (1)
- 收藏
- 关注
原创 HTML object显示为{ },点开后下方显示有数据,却无法读到
1、问题描述笔者在做前端的时候,发现报object无法读取的错误,而输出以后在前端显示{ }(正常来说,这是个空的object)。点击这个“{ }”下方却成功显示出来了相应的数据,只是其他函数无法读取。2、问题分析笔者最终的解释是,1、这个object确实为空,因此其他函数在他为空的时候自然读不到数据。2、至于为什么点击可以显示,笔者认为是后面加载到的数据,比如后端查询刚刚返回结果这样。3、如何解决整体的思路是:控制加载流程,让依赖于这个object的其他函数必须等待他加载完之后才能运行。例
2021-01-17 11:27:27
766
原创 秋招总结(面经)
一、前言笔者是2021届毕业的本科生,计算机科学与技术(网络空间安全)相关方向,学校还可以,面试过程中从没有因为学校被挂简历或者审批不通过,没过的都是技术不到家。本文将从心态、项目、基础知识、手撕代码、面试经验等方面介绍,以期给读者一点帮助。二、经历笔者是打算两手准备的,也就是2020年前期找工作,后期准备考研,这样做风险很大,如果没有找到合适的工作势必会耽误考研。因此大家最好能在最早的时候有一个清晰的规划,或者大二就开始投递实习,或者大二就准备考研留出大三实习。笔者见到的很多超级offer都是这样
2020-09-13 09:40:28
3353
4
原创 (leetcode 23)合并K个排序链表(选值法、两种排序)
原题如下:1、选值法笔者见到这个题第一时间想到的是归并排序,每次挑选出所有链表第一个节点中,全部最小的值(假设有n个),建立新链表。被选中的老链表节点后移一位,新链表生长n位。例如:[1->4->5,1->3->4,2->6](1)第一次选择后:老链表:[4->5,3->4,2->6]新链表:[1->1](2)第二次选择后:老链表:[4->5,3->4,6]新链表:[1->1->2]。。。。。。遇
2020-06-07 23:18:22
294
原创 WPS安装office自定义项安装期间出错
笔者每次打开PPT,都会遇到此问题,长此以往还是很烦的,因此查询以及解决了下。问题截图:这是因为自定义了加载项而加载文件找不到,这时候我们取消勾选加载项即可。具体方法是“开发工具->com加载项->取消勾选后确定”。笔者开始遇到的问题是com加载项中是空的,这时候应该是某些应用的注册表之类没删干净。笔者问题中提示的应用看名字rain_classroom是雨课堂,因此在“添加与删除应用程序”中删除一下雨课堂,成功当然好,不成功也应该把应用信息从添加与删除应用信息中除去,这样再打开com
2020-05-26 11:43:14
14290
8
原创 (leetcode292)Nim游戏(位运算的巧妙用法)
原题如下:思路:这是一道简单的题,难点在于考虑题中“都是聪明人,聪明人如何移动”这个地方,因为我们先手,这时候分两种情况:n能否被4整除。1、n不能被4整除,例如1,2,3,5,6,7这种,我们可以控制我们每次取之后的结果都是4的倍数,这样无论对面拿几个,他一定拿不到最后一个,这相当于我们保证他赢不了。2、n可以被4整除,这时候我们一定输,因为这时候我们拿了以后相当于让对面可以控制他每次取之后的结果都是4的倍数,我们就赢不了。这是直观的理解,证明可以用数学归纳法,这里笔者略去。因此这个问题可以判
2020-05-25 22:27:48
361
原创 (leetcode 295)数据流的中位数(暴力、二分、小顶堆以及进阶)
原题如下:1、暴力法暴力法是把这个问题看成许多分开的求中位数的问题,每次求之前对已有数据排序,然后根据下标求出中位数。时间复杂度在于排序,为O(nlogn)。思路和代码都比较简单,不赘述了。2、二分采用插入排序的思想,从一开始就维护一个有序列表。二分法找到新元素对应的位置后插入,求中位数时根据下标直接提取。二分找位置本身时O(logn)的复杂度,但是插入的时候可能会造成列表后面元素的移动,最坏的时候为O(n)的时间复杂度,因此整体时间复杂度为O(n)。代码:class MedianFi
2020-05-24 01:28:57
305
原创 (leetcode 209)长度最小的子数组(双指针法、二分查找)
原题如下:1、双指针法(56ms,15.2mb)因为要求连续区间,可以采用前后指针,t表示前后指针区间内的数字之和。流程1、当t<s,end+=1;2、当t>=s,begin+=1终止条件为end<l。每个元素最多遍历两次,即前指针一次,后指针一次,因此时间复杂度O(n),空间复杂度O(1)。代码:class Solution: def minSubArrayLen(self, s: int, nums: List[int]) -> int:
2020-05-22 22:52:09
251
原创 (leetcode220)存在重复元素III(滑动窗口法及其平衡二叉树改进思路、桶排序)
原题如下:1、滑动窗口法设置一个长度为k的滑动窗口,对窗口内元素排序,遍历找出差值最小的元素对,若小于t,则返回True,否则,若直到最后都没有返回True,则返回False。对于t=0,做特判,因为可以根据集合的无序性直接判断而不需要排序,尤其是针对此题的测试用例非常有效。这里必须说明的是,虽然在这个题中表现不错,但是很大程度上有测试用例的功劳,因为对长度为k的窗口排序复杂度为O(klogk),对于n的长度,整体复杂度为O(nklogk),当k接近n的时候复杂度会很大,逼近O(n*nlogn)。
2020-05-22 21:34:27
461
原创 (leetcode 201)数字范围按位与的超级详解(暴力法以及剪枝、数学分析法之自顶向下和自底向上)
原题如下:参考链接:1、分析法参考题解链接2、剪枝法参考题解:“Transform”在上面分析法链接下的评论,未找到链接还请谅解开始之前,我们需要想明白一个问题,在每位数按位与的时候,只要出现一次0,这一位的结果必定为0,这是本文优化的必经之路。1、暴力法以及剪枝这道题乍一看挺简单的,很容易写出O(n-m)复杂度的暴力法,即将[m,n]范围的所有数字都与一遍,如下:class Solution: def rangeBitwiseAnd(self, m: int, n: int) -&
2020-05-18 23:27:57
265
原创 (leetcode 189)旋转数组(4种思路)
原题如下:参考官方题解链接,代码及本文理解为笔者手写。方案1、n个数每个都后移1位,后移k次。时间复杂度O(n*k),不太推荐。方案2、使用额外n个空间,存储,按照next=(now+k)%len(nums),将now位置的值直接写到新数组的对应的位置,这样没有覆盖值得问题,但是不符合题目要求。空间复杂度O(n),不太推荐。方案3、每位跳k,直到所有位都跳k过程如下:从初始值开始,将0写到0+k位置上,临时原保存0+k位置的值;临时保存的0+k原值写到0+2k的位置上,临时保存0+2k的值
2020-05-13 22:59:00
254
原创 (leetcode204)计数质数(暴力法及其优化,厄拉多塞筛法)
暴力法及其优化是笔者的思路和代码,厄拉多塞筛法是学习这篇题解后手写的,(据说还有更快的算法线性筛之类的,,这数学也太顶了)原题如下:1、暴力法及其优化1、对每个小于n的数x都遍历一遍。2、判断x是否为素数,看是否能被小于x的数整除。复杂度为O(n2)。在第二步中,可以不必判断小于x的所有数字,只需要判断[2,√n]之间的数字,例如26,只需判断[2,5]之间的数字即可,因为对后面可能出现的因子,他所对应的因子都会在√n之前出现,比如13,因为已经在2的时候判断过了,就不必再次判断。代码如下:
2020-05-13 11:15:26
433
原创 (leetcode338)比特位计数(模拟法、动态规划)
原题如下:笔者思路比较正常,是模拟正常加1情况下的数字变化,规律如下:1、当上一个字符中有0时,下一次运算会将最右位置的0置1,将这个0的位置x后的1全部改为0;这个字符中1的个数为为n+1-(len(s)-1-x),其中n表示上个字符中1的个数,+1表示将最右边的0置1,(len(s)-1)-x代表原来0后边的1的个数,置为0以后减去即可。2、当上一个字符没有0时,所有1变0,同时开头补1。此时n的个数为1。class Solution: def countBits(self, num
2020-05-10 13:38:13
220
原创 (leetcode322)零钱兑换 (贪心+dfs、动态规划之自顶向下和自底向上)
leetcode原题,如图:笔者第一想法是,得到所有数值和为amount的组合,取其中最短的组合长度返回,没有则返回-1。根据这个思路,笔者做了深度优先遍历dfs。初始因为剪枝不足而总是超时,最终代码为:class Solution: def coinChange(self, coins: List[int], amount: int) -> int: if amount==0: return 0 coins.sort()
2020-05-09 15:43:37
483
原创 (leetcode739)每日温度(暴力法及其改进,巧妙使用栈)
leetcode第739题,原题如下:一、首先想到的是O(n2)暴力法对于每一个元素都向后遍历,直到找到第一个比当前元素大的位置,记录距离差。class Solution: def dailyTemperatures(self, T: List[int]) -> List[int]: l=len(T) lst=[0]*l for...
2020-05-08 15:40:09
231
原创 leetcode 字符串的排列(循环以及递归)
一、题目描述二、思路以及代码递归思路:分解字符串,将其视为第一个字符和其余字符的组合,利用这个函数反复得到首字母+其余字符串的全排列,直到其余字符串长度为1返回。最终利用list(set(lst))对lst去重。理解简单,书写便捷,缺点是耗时较久。class Solution: #递归 def permutation(self, s: str): i...
2020-03-05 23:51:50
655
原创 (leetcode 4)(python)寻找两个有序数组的中位数
# 一、前言leetcode做的一道比较难的题,主要是算法有关的知识掌握不牢。题目如下:![在这里插入图片描述](https://img-blog.csdnimg.cn/20200208184322821.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTg0Mzg1,size_16,color_FFFFFF,t_70)
2020-02-08 19:10:44
443
原创 (python)编译原理实验之词法分析
一、前言主要是为了区分4种词(保留字(包括自定义字)、数字、字母、比较符),建立并输出token和符号表。二、源代码#coding:utf8#编译原理实验一reserved=['if', 'then', 'else', 'while', 'do']num=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'ε']letter=['...
2020-01-26 22:20:25
1026
原创 8086汇编实验(十题可用)
一、前言1、这学期学8086汇编,所做的四次实验十个题目(前8手写,后2摘录后修改,时间久远未找到原文链接,愿理解),亲测可用,码住,希望能对将来的读者有所帮助。2、有的需要在debug中根据段地址和偏移地址修改(e命令)或查看(d命令)值以后才能使用,偏移地址大多在3000,根据需要可能在3100也有,需要读源代码加以理解。二、环境(DOSBox)按照这篇文章配置。三、题目及源代码0...
2020-01-26 22:04:44
4744
2
原创 (C++)TCP、UDP套接字多线程
一、前言主要功能是实现并发的“客户端–服务器”通信。这里有两种方式,分别是TCP和UDP。这里是一个基本的通信代码,读者可以根据自己的需要稍作修改。二、主要思路1、TCP:监听套接字中的accept函数返回一个连接套接字,就用这个套接字作为参数区分不同的客户端。2、UDP:对于服务器,第一个来访的客户端新开一个进程,设置端口为6001,之后的端口依次设置为6002、6003…然后告知每...
2020-01-21 21:29:48
3567
转载 Linux使用iptables设置黑白名单
(转者注:此文为转载,iptables在Ubuntu上亲测可用,特此码住)原文如下:使用ipset工具1,下面我先说下iptables的基本配置规则,然后再说ipset以下使用C7 x86_64为实验环境CentOS7默认的防火墙不是iptables,而是firewalle.如果你没有安装iptables的话,你可以使用以下命令进行安装systemctl stop firewalld...
2019-12-21 11:16:32
2533
原创 操作系统实验之“银行家算法”
一、前言银行家算法主要用于判断内存分配是否安全合理。1、是否合理主要是看进程的请求是否小于所需值,以及是否小于现有资源量。这个部分比较简单,根据available,need这两个二维矩阵就可以直接判断。2、是否安全主要根据安全性检查算法,主要思路是,对于分配后的available,allocation,need三大矩阵,是否能找到一种顺序能使得所有进程都能运行完。步骤如下:(一般描述中...
2019-12-16 20:41:40
3233
原创 操作系统实验之“存储器管理”
一、前言笔者此次实验主要涉及内存分配,使用python列表来模拟内存。分配策略可以分别采用最先适应算法、最佳适应算法和最坏适应算法等。带有简单的交互,如有问题欢迎指出!二、源代码def allocation(lst,lst_admin,n,order): ret=-1 for i in range(len(lst_admin)): if lst_adm...
2019-12-06 16:20:56
1409
2
原创 操作系统实验之“进程调度与资源管理”
一、前言笔者看来,这个实验主要是模拟进程的状态转换以及与资源的关系。因此难度说不上很大,但是比较复杂,这里上传一份python版本供大家参考,疏漏之处还请不吝赐教。二、基本流程因为在本实验程序中先来先服务视为最高优先级的一种子情况,因此只分析最高优先级即可。1、创建进程:按照预定的序号id、优先级pri等五项创建进程。2、创建资源:同理,根据序号rid、状态state等三项创建资源。...
2019-12-03 22:29:31
1809
原创 1024程序员节
浏览博客的时候常常看到别人能有许多的勋章,甚是垂涎。借着今天程序员节的由头,特来讨一枚1024勋章。祝大家都能拥有幸福的生活。愿人眼里有光,坚持信仰。...
2019-10-24 19:22:30
614
原创 shell获取本机ip地址
当我们使用ifconfig命令的时候,会发现结果中有ip地址,一般来说,我们不需要localhost的地址,因此只需获取eth0即可,这里不同的机器不同,可能需要稍作修改。下面给出实际运行脚本#!/bin/basharg=$(ifconfig 'eth0' | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " " )echo $arg...
2019-10-19 19:14:43
5691
原创 在shell中输入回车 | Y |yes等(例如在shell中使用nohup命令)
一、问题描述在linux使用某些命令的时候,常常需要我们确认,例如输入回车,Y、yes等等。如果是键盘输入的话,没什么问题;如果需要脚本中检测某些关键词并且回应的时候,需要使用特定的模块except。二、问题解决1、安装有关模块sudo apt-get install tcl tk expect2、检测某些关键词并且给出回应这里以nohup要求确认句中的“output”为例,给出...
2019-10-18 20:05:02
7803
原创 mongodb 根据时间动态修改表名
一、问题所在当我们需要根据时间对mongodb进行分表,从而避免单表过大问题的时候,会遇到如下问题:目前,当插入数据的时候,表名只能是写死的,不能根据时间修改。因此,要达到根据时间分表的目的,我们需要其他函数。二、解决方案db.collection_name.rename("collection_name"+time_ym)即rename() 重命名函数。举个例子,当我们每个月都需...
2019-10-17 22:03:30
1535
转载 手写网页时PHP/HTML显示中文乱码
原文链接原文中HTML这句代码在meta和http-equiv之间少了一个空格,加上即可完美实现功能。这里转载主要是为了以后查阅方便。1、PHP乱码在php文件开头加一句header("Content-type:text/html;charset=utf-8"); 2、HTML乱码在head标签中加一句<meta http-equiv="Content-Type" cont...
2019-10-04 16:50:42
506
原创 浏览器弹出“www.osint.com”并且导航到毒霸问题解决
1、找到对应文件在C:\Program Files (x86)目录下找到kbasesrv这个文件夹,如果你对这个文件有所顾虑,不妨搜索这个程序会发现这是个流氓程序:百度问答之“kbasesrv是什么软件”里面有一个uninstall.exe,双击运行卸载这个程序。2、运行之后你会发现还剩余几个dll文件,如何删除呢?原因:这是几个动态链接库文件,也就是这个程序链接到**“其他应用程...
2019-10-01 20:51:43
1252
2
原创 “操作无法完成,因为文件已在某程序中运行”的解决办法
1、打开任务管理器,找到进程页面2、找到并且关闭占用这个程序的进程,可能有多个,全都关掉之后再删除就完事了。(PS:有的软件非常流氓,我就想删除一个文件这里面居然链接了我接近十个应用程序)...
2019-10-01 20:35:05
7641
原创 (ubuntu)DOSBox编写第一个汇编语言程序
一、安装dosboxsudo apt-get install dosbox安装成功之后可以通过命令行输入dosbox来开启,也可以在左下角“显示应用程序”中打开。二、操作步骤在这里插入代码片1、选择一个目录,其中尽可能准备好以下文件这些文件中,必须有MASM.EXE和LINK.EXE。调试需要,最好配上DEBUG.EXE。另外,hello.asm文件是提前用vim编辑器写好...
2019-10-01 19:10:03
2445
3
原创 wordpress网站实现QQ互联全记录
一、前言主要使用现成的插件和SDK完成设置,简单粗暴。为方便访客迅速登陆,笔者在网站上配置了QQ登陆。期间摸索了大概两周,总结来看主要是没有详细可用的指导,或者扎实的php编程基础。话不多说,直奔主题。二、设置过程1、首先你的网站需要备案通过。2、安装wordpress插件open social此时如果像笔者一样,不能直接在插件页上下载安装,可以参考这篇文章安装插件,启用。
2019-09-25 22:11:16
1405
原创 wordpress手写页面
一、前言wordpress还是非常强大的,选择一种主题可以很快搭建网站雏形。当我们把这个主题的功能挖掘的差不多的时候,难免手痒希望加入一些自己的页面或者js功能,下面我们来介绍一下具体的三种方法。二、使用方法1、新建文章在文章中写入标题和文字内容,从可视化到文本编辑之后,可以手写css、js等,打开网页的时候都是可以实现的。美中不足的是这样需要遵循主题的文章格式,不够自由。2、新建页...
2019-09-21 16:36:42
634
原创 CCF过程记录以及经验总结
一、前言昨天,也就是2019/09/15,笔者第一次参加计算机能力认证(CCF),有一些感受和经验记录,希望能对将来的备考以及读者起到一定的参考作用。二、比赛流程1、先报名,作为学生,充值学生会员再报名比直接报名要便宜。2、考前除了准备工作,需要提前准备好身份证和准考证,准考证打印时间不一定,此次由于结束报名较晚,直到考前两三天才能打印准考证。3、及时到达准考证上的比赛场地。4、考试时...
2019-09-16 21:12:47
1166
原创 CCF CSP20190301小中大(100分)(python)
一、题目描述二、python实现n=int(input().strip())s=input().strip()nums=s.split(" ")if nums[0]>=nums[n-1]: max=nums[0] min=nums[n-1]else: max=nums[n-1] min=nums[0]if n%2==1: mid=nu...
2019-09-10 16:04:25
515
2
原创 (expect)Ubuntu远程登陆/下载脚本
一、前言在linux系统中,当项目需要长期运行,指令需要频繁执行的时候,我们可以将其写在shell中,再用crontab定期执行来减少工作量。这里想介绍的是当某些指令需要等待回复,比如远程登陆和下载文件时,需要输入密码的情况。这个看起来并不困难,只需要注意一点细节即可。二、远程登陆/下载介绍:脚本运行之前需要先授予运行的权力chmod +x test.sh运行指令:./test.s...
2019-09-07 22:53:39
586
原创 wordpress添加插件
一、前言刚刚安装的worldpress比较简陋,许多模块都没有,如果我们不想手动编辑功能页面的话,就可以选择安装插件,这个过程看起来比较简单,也有许多坑。二、安装步骤问题1:无法连接FTP笔者遇到的是权限的问题,经搜索后可以通过这篇文章解决。其中wp-config这个文件作者没有交代,在笔者ubuntu服务器目录如下:/var/www/html/wp-config.php问题2、“...
2019-09-05 16:33:50
1039
原创 (python)大量数据乱序思路以及核心代码
一、前言笔者曾做过一次项目,其中要求对几十亿条数据顺序乱序。做这个项目的时候,笔者切实的感到了大量数据和少量数据的不同。受到时间和空间条件的制约,我们无法将所有数据放到内存中的时候,或者说即便放进去速度也不符合要求的时候,就迫使我们想别的办法。二、思路1、少量数据乱序是由函数的,即“shuffle”,python中导入random模块之后,对列表list乱序的操作为:random.shuff...
2019-09-03 20:15:36
1076
原创 (python)threading多线程
一、前言我们在对大量数据做类似操作的时候,如果仅仅使用一种串行逻辑,无疑让后面的许多同类操作持久等待,耗费许多时间。实际上,我们可以选择许多种并行的模块来实现类似操作同时执行,比如同时爬取多个网站,同时对多个文本进行类似处理等。这里介绍笔者学习threading的经历和步骤。生产者消费者模型代码是跟优秀博文学习的,原文请点击原文链接。这里以此为例子,加入了笔者的理解说明和改动后代码,较大篇幅为...
2019-08-31 11:16:58
183
原创 增量比较存储新思路以及核心代码
一、前言所谓增量比较,就是说在每天探测的情况下,新文件和之前的存储文件之间的区别比较,如果采用遍历存储比较的方法显然非常复杂,这里主要提供笔者学习学长以及讨论、个人考虑之后的一种思路。二、主要思路1、存储文件的存储形式在存储文件中,可能需要保存同一对象的很多状态,如果每次更新都采用全量存储,势必占用许多空间。经过学习和讨论,为了实现节省存储空间的目的,我们可以采取只存储变化数据的方式在文件...
2019-08-28 11:22:29
971
西湖十景导航.exe
2019-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人