- 博客(31)
- 收藏
- 关注
原创 Java Stream
Java Stream1. 概念说明Stream这个词很容易造成误解,这里先做一个澄清,Java中的流:非IO流,非数据流,而是集合的功能增强非集合元素,非数据结构,也不保存数据,但却为数据操作而生其实流式操作在动态语言中并不少见,map/filter/reduce...在动态语言中都是耳熟能详的用法,又叫迭代器。所以,在Java中也类似。但Java中已经有Iterator的概念,...
2019-12-30 19:34:26 272
原创 js中的奇言妙语之"+"
js中的奇言妙语一张图片引发的思考,首先,请看图:如果以上内容你全部答对,本文就没有阅读的必要了,当然了,如果有兴趣,也可以稍微看看。知识说明其实上面的式子主要涉及js中运算符+的理解。+在js中有两个作用:作为一元运算符,用于显示地将操作数转化为数字。作为二元运算符,对两个操作数做拼接操作。这里拼接有几个基本规则:NaN是一个特殊的number,我理解为不是数字的数字,并...
2019-08-18 23:58:57 282
原创 chrome DevTools调试技巧
chrome DevTool调试技巧调试是代码开发、定位问题的重要手段。作为前端开发人员,学会利用Chrome开发者工具调试,快速定位问题,也是我们一项必备技能。启动F12右键–>检查右上角设置->更多工具->开发者工具(有时候以上两种会被页面屏蔽)基本布局快速选择元素(ESC退出选择状态)模拟设备分辨率通过右上角三个点,调整布局位置Elemen...
2019-07-10 13:10:09 687
原创 DOM事件机制
DOM事件流(event flow )存在三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段。事件捕获:从外到内(从父到子)传播事件冒泡:从内到外APIaddEventListener(event, listener, useCapture)event----事件名称,如click,不带onlistener----事件监听函数useCapture----是否采用事件捕获进行事件捕...
2019-07-03 20:03:05 203
原创 JavaScriptavaScript之WebSocket
JavaScriptavaScript之WebSocket定义WebSocket 是一种在单个 TCP 连接上进行全双工通讯的协议。具有一次握手,持久连接,双向数据传输的特点。基本使用实例化WebSocketvar Socket = new WebSocket(url, [protocol] );WebSocket事件事件 事件处理程序 描述open Socket.ono...
2019-07-02 20:48:41 297
原创 JavaScript中的防抖和节流
JavaScript中的防抖和节流场景引入监听浏览器界面滚动执行回调,一旦滚动,就会触发大量回调,导致性能大大下降,应该如何优化该功能?概念说明防抖:未达到指定时间,再次触发监听时间,则会重新开始计时。(类比电梯例子)节流:在指定时间内,多次触发事件,回调只执行一次。(类比游戏中释放技能)代码实例防抖函数:1秒内再次滚动页面,则重新开始计时。var count = 0; ...
2019-07-01 23:52:20 171
原创 JavaScript数据类型
基本数据类型JavaScript有六中基本数据类型:undefined、 null、boolean、number、sring、symbol (ES6新增)基本数据类型可以用typeof来判断(null除外,下文会说到)存储在栈中的简单数据段,方便频繁使用不可变性(只是改变了变量的指向,变量是没有类型的,变量的值才有)值的比较==&===前者会做类型的自动转化,只比较值,后者...
2019-05-05 23:10:12 121
原创 浅谈Promise
setTimeout把回调函数放在事件循环中,如果此时事件循环队列中已有任务,回调需要等待,通常没有抢占,因此setTimeout精准度不高,一般会在设定的时间之后才触发回调。回调的问题控制反转,导致信任链断裂。顺序性无法保证(Zalgo)Promise好处解决回调地狱----链式调用控制反转问题----回调只调用一次规范三种状态:Pending、fulfil...
2019-05-04 18:23:00 173 1
原创 HTML头的那点小事
DocType文档类型一句话说明,标准通用标记语言解析器(SGML),根据文档定义类型(DTD)来解析文档类型(DocType)。文档类型分为一下几种:模式介绍标准模式HTML与CSS定义渲染,即我们常见的<DOCTYPE html>怪异模式(quicks mode)尝试模拟更久的浏览器行为部分标准模式(almost mode)表单元格尺...
2019-03-04 18:07:15 136
原创 eval全局作用域
eval全局作用域问题描述:在使用eval()执行代码的时候,遇到作用域的问题。eval()语句写于函数内,因此eval()内执行的变量也只是局部变量。函数外部无法访问。问题分析:var x = 10;function testEval() { eval("var x = 20");//局部变量}testEval();console.log(x); //10使用window....
2019-01-15 23:18:48 2043
原创 Edge浏览器乱码问题
Edge浏览器乱码问题问题描述:今天在国际化页面中遇到edge浏览器部分中文字符乱码的问题,而在其他浏览器测试均正常。乱码部分的js文件是动态引入的,在加载过程出现了问题,导致界面出现字符乱码。问题分析:首先检查js文件的编码格式,跟界面保持一致,是以UTF-8形式,编码形式可以通过charset来设置。编码格式正确,并且在其他浏览器中均没有问题,网上很多类似的情况也认为是edge浏...
2019-01-15 00:39:37 9047
原创 动态规划之01背包问题及其优化(python实现)
动态规划之01背包问题及其优化(python实现)**背包问题(**Knapsack problem)是一种组合优化的NP完全问题。 问题描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。解决思路:动态规划,对每一件物品遍历背包容量,当背包可容纳值大于等于当前物品,与之前已放...
2018-04-16 13:23:28 44527 13
原创 面试题之旋转数组求最小数字问题(Python实现)
旋转数组求最小数字问题描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 解题思路: 采用二分查找,设置两个游标low和high指向首尾特殊情况,当...
2018-04-12 13:32:38 1204
原创 递归和非递归快速排序(Python实现)
递归和非递归快速排序(Python实现)快速排序的原理是基于分治策略,设定一个基准线(pivot),将数据分为两部分,不断分治实现数据的排序由实现原理容易得到递归代码如下:def qsort(arr): if not len(arr): return [] else: # 在这里以第一个元素为基准线 pivot = arr[0...
2018-04-11 21:57:32 8904 7
原创 腾讯笔试题之m台机器完成n个任务调度问题(Python实现)
腾讯笔试题m台机器完成n个任务调度最大收益问题问题描述:m个任务,第i个任务需要Xi的时间去完成,难度为Yi。有m台机器,第i台机器最长工作时间为Zi,机器等级为Wi。对于一个任务只能交由一台机器完成,任务被完成的条件为:任务所需时间Xi小于机器最长工作时间Zi,任务难度Yi小于等于机器等级Wi。任务被第i台机器完成的收益为200*Xi+3*Yi。一台机器只能分配一个任务。...
2018-04-10 22:27:21 7720
原创 《剑指offer》面试题之从上往下打印出二叉树(Python实现)
《剑指offer》面试题之从上往下打印出二叉树(Python实现)题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。解题思路:利用辅助队列存储待打印结点完整代码如下:# coding:utf-8class Node(object): """ 定义二叉树结点 """ def __init__(self, data): ...
2018-04-10 13:52:37 729
原创 面试题之顺时针打印矩阵(Python实现)
面试题之顺时针打印矩阵(Python实现)问题描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,输入如下矩阵: 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路:每次打印并删除矩阵的第一行,然后将矩阵逆时针翻转90度,直至打印出全部结果具体代码实现如下:# coding:utf-8cla...
2018-04-09 17:42:51 4015 3
原创 面试题之空瓶子换水问题及其扩展规律(python实现)
面试题之空瓶子换水问题及其扩展规律(python实现)问题描述: 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空 汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满 的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老...
2018-04-09 00:24:16 2641
原创 面试题之检查栈的压入弹出序列(Python实现)
面试题之检查栈的压入弹出序列(Python实现)题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:利用一个辅助栈模拟栈的压入操作...
2018-04-08 13:27:24 348
原创 python实现一个包含min函数的栈
python实现一个包含min函数的栈题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。思路:借助一个辅助栈,用来存放每次栈操作时(包括入栈和出栈)栈中最小元素。具体实现代码和相关注释如下:# coding:utf-8class MinInStack: def __init__(self): self.stack = [...
2018-03-31 14:16:44 517
原创 python实现链表基本操作以及链表成对调换
python实现链表基本操作以及链表成对调换用类来模拟链表基本操作的实现 并且实现python常见面试题目链表成对调换(1234->2143)具体代码实现和相关注释如下:#!usr/bin/python#-*- coding:utf-8 -*-class Node(object): def __init__(self, data, pnext=None): ...
2018-03-31 13:19:16 1920
原创 杨氏矩阵查找(Python实现)
杨氏矩阵查找(Python实现)问题描述: 在一个m行n列二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。有则返回1,无则返回0,输入错误返回input error问题分析:根据杨氏矩阵的规律可知,左上角是最小元素,右下角是最大元素,进行比较一次只能排除一个。而利用左下角或者右...
2018-03-22 00:50:02 1366
原创 在字符串中找出连续最长的数字串(python实现)
在字符串中找出连续最长的数字串(Python实现)输出字符串中最长的数字字符串和它的长度。如果有相同长度的串,则要一块儿输出,但是长度还是一串的长度解析:简单的遍历字符串,并设置length,当连续数字串大于len时,进行交换,否则清空AC代码如下:# coding=utf-8import sysdef solve(): for line in sys.stdin:...
2018-03-22 00:39:47 22439 2
原创 python之斐波那契青蛙跳台阶、矩阵覆盖问题及其优化
python之斐波那契青蛙跳台阶、矩阵覆盖问题优化题目描述:(1)一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。(2)一只青蛙一次可以跳上1级台阶,也可以跳上2 级……它也可以跳上n 级,此时该青蛙跳上一个n级的台阶总共有多少种跳法?问题一,简单分析可以得到一个斐波那契问题,解决方案有迭代和递归,还有在python中还可以用匿名函...
2018-03-14 23:41:52 974
原创 python实现单例模式
python实现单例模式单例模式,简单来说,就是一个类只能有一个实例,并且能够自行实例化向整个系统提供。例如文件系统和任务管理器等。由此可见,单例模式的要点有三个: 1. 一个类只能有一个实例; 2. 它必须自行创建这个实例; 3. 它必须自行向整个系统提供这个实例在python实现单例模式的方法总结起来有四种及其对应代码如下:1. 魔术方法class ...
2018-03-14 21:00:29 315
原创 python实现冒泡排序及其优化
python实现冒泡排序及其优化冒泡排序是排序算法中比较基础的部分,简单原理就是 将数量大小比作轻重不同的气泡,轻的气泡会冒到重的气泡之上的思想最原始的排序代码如下:def BubbleSort(numList): if not len(numList): return for i in range(len(numList)): for...
2018-03-14 00:26:42 3159
原创 python实现二叉树非递归前中后序遍历
python实现二叉树非递归前中后序遍历二叉树是数据结构中重要的一部分,本文简单介绍用python实现二叉树的前中后序遍历,包括递归和非递归思路算法。先定义结点:class Node(object): &quot;&quot;&quot; 定义二叉树结点 &quot;&quot;&quot; def __init__(self, data): sel
2018-03-13 23:44:44 8703 6
原创 爬虫遇到栈溢出(stack overflow)的问题
今天在用python爬虫抓取网页信息的时候,出现了一个关于栈溢出的错误:Fatal Python error: Cannot recover from stack overflow.没有找到正确的解决方案,然后就搜索了跟栈溢出相关的知识并检查了代码,发现了问题所在:使用函数时递归调用次数过多(1000多),导致栈溢出。在Python中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函
2017-10-10 23:01:50 11939
原创 魔术师发牌问题
一位魔术师掏出一叠扑克牌,魔术师取出其中13张黑桃,洗好后,把牌面朝下。说:“我不看牌,只数一数就能知道每张牌是什么?”魔术师口中念一,将第一张牌翻过来看正好是A;魔术师将黑桃A放到桌上,继续数手里的余牌,第二次数1,2,将第一张牌放到这叠牌的下面,将第二张牌翻开,正好是黑桃2,也把它放在桌子上。第三次数1,2,3,前面二张牌放到这叠牌的下面,取出第三张牌,正好是黑桃3,这样依次将13张牌翻出,全部
2017-10-03 23:04:19 347
原创 约瑟夫问题
问题描述:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止思路:利用循环链表遍历输出自杀顺序#include "stdio.h"#include "stdlib.h"typedef struct node{
2017-10-02 23:57:29 186
原创 利用双向循环链表实现任意长的整数进行加法运算
【问题描述】 设计一个实现任意长的整数进行加法运算的演示程序 。 【基本要求】 利用双向循环链表实现长整数的存储,每个结点含一个整形变量。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。 【测试数据】 (1)0;0;应输出“0”。 (2)-2345,6789;-7654,3211;应输出“-1,0000,0000”。 (3)-9999,9999;1,0000,000
2017-10-02 23:40:31 11689 10
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人