- 博客(166)
- 收藏
- 关注
原创 编译原理之算符优先分析的两个有趣小栗子
今天上编译原理课时,老师讲了些非常有意思的知识,总结一下,也分享给大家~先抛出一个小栗子大家思考一下,i + i - i * (i + i)这个运算表达式先算哪部分?此处思考三分钟。。。。 我相信,大多数人和博主一样第一感觉先算括号 里面的,但是理智又告诉我,应该先算左边第一个加号更合适。但是,博主却不能清晰的说出原因。。,,ԾㅂԾ,,那么我们先来分析,为什么第一感觉会是...
2018-04-17 11:25:12 627
原创 剑指 Offer 16. 数值的整数次方,右移和无符号右移的区别!!!
实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。提示:-100.0 < x < 100.0-2^31 <= n <= 2^(31-1)-10^4 <= x^n <= 10^4必须表扬一下 x=2, n=-2147483648 这一组测试用例。这个用例决定了这里只能用无符号右移,有符号右移会有问题!2147483648 = 2^31 ===> 对应的二进制串为 ‘1000000000.
2021-03-20 16:06:06 317
原创 设计模式汇总
设计原则:找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起;针对接口编程,而不是针对实现编程;多用组合,少用继承;为了交互对象之间的松耦合设计而努力;类应该对扩展开放,对修改关闭;要依赖抽象,不要依赖具体类;最少知识原则,只和你的密友谈话;别调用我们,我们会调用你;一个类应该只有一个引起变化的原因。简单工厂: 不是一个真正的模式,但是和抽象工厂和工厂方法模式一样,它经常被用于封装创建对象的代码抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指.
2021-03-14 21:29:43 316
原创 ios微信分享失效,不支持history.pushState方法
微信分享 ios分享失败问题定位了很久,安卓没有问题,ios就是分享不成功/(ㄒoㄒ)/~~背景:在微信授权的时候,用户同意授权,获取code,如果用户同意授权,页面将跳转至redirect_uri/?code=CODE&state=STATE。拿到code之后,可以去获取用户的openid。但是因为code只能用一次,所以在获取到openid之后,利用window.history.pushState()方法,清空了location.searchwindow.history.pushSt
2021-01-19 17:17:21 1534
原创 微信自定义分享
JSSSDK 的使用文档地址微信 JS 接口签名校验工具绑定域名先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS 接口安全域名”。备注:登录后可在“开发者中心”查看对应的接口权限。步骤二:引入 JS 文件。我直接跑的npm install weixin-js-sdk步骤三:通过 config 接口注入权限验证配置出于安全考虑,签名的生成是让后端实现的,签名算法文档写的很清楚。调用后端的接口取signature,同时需要把生成signature的timestamp,
2021-01-12 19:22:10 492
原创 Sequelize分页错误 result.count for findAndCountAll is incorrect with include
Sequelize中的findAndCountAll方法,这个方法会查出列表记录,同时返回符合查询列表数据的条数。// result.count for findAndCountAll is incorrect with includeconst order = await this.OrderModel.findAndCountAll({ include: [this.ctx.model.Customer, this.ctx.model.Test], limit: pageSize, of
2020-12-20 13:18:33 1466 1
原创 腾讯云 鉴权失败,请确认服务器已启用密码鉴权并且账号密码正确? permission denied (publickey,gssapi-keyex,gssapi-with-mic)
腾讯云服务器账号密码登录,显示鉴权失败,请确认服务器已启用密码鉴权并且账号密码正确?permission denied (publickey,gssapi-keyex,gssapi-with-mic)开启了密钥登录导致的。vim /etc/ssh/sshd_config 修改 sshd_config文件中 PasswordAuthentication yes。重启服务:service sshd restart...
2020-11-28 14:56:07 2111
原创 微信网页授权获取用户信息,Scope 参数错误或没有 Scope 权限
scope: snsapi_base的网页授权,就静默授权的,用户无感知,获取用户的openId及用户基本信息。文档地址,务必认真研读:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html首先公众号具有获取"网页授权获取用户基本信息"接口权限,具体查看方式如下图;其次,确认所需要回调页面的域名已加入网页授权域名的列表,添加方式如下图,比如我想要回调的页面是h
2020-11-28 14:53:04 3375
原创 Vue源码解读2——Vue实例挂载实现
以src/platform/web/entry-runtime-with-compiler.js中的$mount为例// 缓存了原型上的 $mount 方法,再重新定义该方法const mount = Vue.prototype.$mountVue.prototype.$mount = function ( el?: string | Element, hydrating?: boolean): Component { el = el && query(el) ..
2020-10-18 11:06:12 396
原创 开发中遇到的ts报错异常记录
ERROR in E:/platform/demo/node_modules/@types/webpack-env/index.d.ts(349,15): 349:15 Interface 'NodeJS.Module' incorrectly extends interface '__WebpackModuleApi.Module'.// 忽略所有的声明文件( *.d.ts)的类型检查// tsconfig.json"skipLibCheck":true,ERROR Cannot fin
2020-10-12 16:32:46 2277
原创 Vue源码解读1—— 定义
Vue 定义entry-runtime-with-compiler.js文件为入口runtime/index:在 Vue 原型上挂载了__patch__、$mount方法core/index:注册全局 api,Vue.prototype 添加$isServer,$ssrContext,FunctionalRenderContext属性instance/index:定义 Vue functioninitMixin方法定义Vue.prototype._initVue.prototype._ini
2020-10-12 16:23:43 239
原创 私有仓库发布组件常用命令
查看当前的npm源npm config get registry 或者 nrm ls设置当前源npm config set registry=http://192.168.60.90:8081/repository/test/ // <===> 等价于nrm add test http://192.168.60.90:8081/repository/test/nrm use testnpm 登录npm loginnpm查询当前登录账号npm whoami..
2020-07-12 21:16:06 312
原创 vue refs 报错 Property 'getSectionIds' does not exist on type 'Vue | Element | Vue[] | Element[]'.
在父组件中用refs去获取子组件内部的方法或者属性,以下面的demo为例,直接写this.$refs.childRef.getValue() 会报错,报错内容说’Vue | Element | Vue[] | Element[]'a这些类型中,没有我们调用的属性。但是我们很清楚,这个childRef的类型是ChildComponent,这个类型中是含有我们所需要的变量或者方法,因此给this.$r...
2019-12-06 16:24:35 1841
原创 解决vue-router 中,重复点击同一个路由,控制台报错:"Navigating to current location (XXX) is not allowed"
解决方式:在push语句中添加catch捕捉错误router.push('your-path').catch(err => {})详细信息:https://github.com/vuejs/vue-router/issues/2872
2019-12-06 11:05:32 1028 1
原创 字符串的排列——JS
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。JSlet result = [];function Permutation(str){ // write code here result = []; let arr = str.spl...
2019-09-18 08:45:40 432
原创 compression-webpack-plugin GZip插件打包报错 ValidationError: Compression Plugin Invalid Options
安装插件: yarn add compression-webpack-plugin配置webpack.js :const CompressionPlugin = require("compression-webpack-plugin");return ( plugins: [ new BundleAnalyzerPlugin(), isEnvProductio...
2019-08-19 16:37:26 2490
原创 顺时针打印矩阵——JS
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.function printMatrix(matrix){ // write code here let ...
2019-08-17 15:04:08 460
原创 二叉树中和为某一值的路径——JS
输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */fu...
2019-08-16 10:32:09 914
原创 二叉搜索树的后序遍历序列——JS
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。二叉搜索树(Binary Seach Tree , BST):它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分...
2019-08-15 22:22:24 500
原创 树的子结构——JS
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)(二叉树A中可能含有相同的节点,因此HasSubtree应该进行一次根节点的递归。searchTree是以pRoot1为根节点去依次对比pRoot2的节点)function HasSubtree(pRoot1, pRoot2){ if(pRoot2 === null || pRoot1 === n...
2019-08-15 16:34:07 246
原创 二叉树的镜像——JS版本
题目描述:操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树8/ \6 10/ \ / \5 7 9 11镜像二叉树8/ \10 6/ \ / \11 9 7 5/* function TreeNode(x) { this.val = x; this.left = null; this...
2019-08-14 22:53:56 302 2
原创 合并两个排序的链表——JS递归和非递归版本
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。/*function ListNode(x){ this.val = x; this.next = null;}*/function Merge(pHead1, pHead2){ if(pHead1 === null){ return pHead2; }else if(...
2019-08-14 21:40:12 458
原创 从上往下打印二叉树——JS和CPP
从上往下打印出二叉树的每个节点,同层节点从左至右打印。利用对列先进先出的特点来对二叉树节点进行依次遍历JavaScript版本/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function PrintFromTopToBottom(root){...
2019-08-14 16:28:01 281
原创 PureComponent和Component的区别
PureComponent和component相比,PureComponent通过prop和state的浅比较来实现shouldComponentUpdate,在某些情况下,用PureComponent可以提高页面的渲染性能。// shallowEqual 会比较 Object.keys(state | props) 的长度是否一致,每一个 key 是否两者都有,// 并且是否是一个引用,也就...
2019-08-13 17:34:19 871
原创 并查集
并查集分为——合并和查询的过程。Description若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。Input第一行:三个整数n,m,p,(n<=5000,m<=5000,p&l...
2019-07-16 22:35:29 166
原创 快速幂
快速幂如果需要计算a^n(a的n次幂),一般都会一次累乘,算法复杂度为O(n);但是如果把an进行拆分,例如a7进行拆分得到,a^7 = a * (a^6) = a * (a3)2 = a * ((a * a^2 ))^2反过来看,我们知道了a,就知道了a^2 , 继而知道了a4,又能得到a8,这样会将计算的复杂度从O(n)降到O(log2n)快速幂普通版本C++版本:long lon...
2019-07-16 12:28:24 179
原创 前缀树TrieTree 操作详解(CPP版)
前缀树含义Trie树,即前缀树,又称单词查找树或字典树,是一种树形结构。该树典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。应用题目:给你100000个长度不超过10的单词。对于每一个单词,我们要判断他出没出现过,如果出现了,求第一次出现在第几个位置。在Trie树适用的状态下,很多情况同样可以使用hash树。但是Trie树用途更加的广泛,...
2019-07-14 17:13:39 480
原创 git commit之后自动对代码检查,导致commit报错
报错原因项目中使用了husky,并且配置了"precommit": "npm run lint"。因此会在你git commit的时候执行npm run lint 也就是eslint --ext .js src test。GIT_DIR/hooks/pre-commit :这个钩子被 git commit 命令调用, 而且可以通过在命令中添加--no-verify 参数来跳过。这个钩子不需要参...
2019-07-06 17:12:11 8656
原创 事件防抖
事件防抖问题引入在输入框输入内容后间隔1000ms之后再请求callback问题解决直接绑定下面这段代码,每次输入一个字母就会触发callback,显然性能是比较差的~从配图也能看出来,每次输入都会打印输入框的内容。<!DOCTYPE html><html><head> <title>事件节流和事件防抖</ti...
2019-06-28 23:21:16 448
原创 事件节流 详解
事件防抖问题引入当浏览器的窗口变化的时候,控制台打印出"reize"的记录问题解决直接绑定下面的这段代码,鼠标随便动几下,控制台就打印了若干的信息。。明显,效率非常低下。<!DOCTYPE html><html> <head> <title>事件节流</title> <meta charset="u...
2019-06-28 20:04:39 462
原创 左旋转字符串(JS)
题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!JS版本function LeftRotateString(str, n){ if(s...
2019-05-23 20:11:06 445
原创 Nginx开启gzip压缩,提高页面加载速度
找到Nginx对应的配置文件,我默认使用的default文件vim /etc/nginx/sites-enabled/default在配置文件server{}中加入gzip on;gzip_proxied any;gzip_min_length 1100;gzip_buffers 16 8k;gzip_types text/plain text/css application/jav...
2019-05-04 10:49:24 614
原创 React webpack 开启 gzip 压缩 报错 ValidationError: Compression Plugin Invalid Options
报错内容:$ npm run build> nuistoj@0.1.0 build D:\_DATA_\webStormProject\nuistoj> node scripts/build.jsD:\_DATA_\webStormProject\nuistoj\node_modules\schema-utils\src\validateOptions.js:32 ...
2019-05-04 10:23:23 2825
原创 数字每隔三位用逗号分隔 js
splitNumberWithComma = (n) => { let reg = /\.\d+/; let num = (n || 0).toString(); let temp = reg.exec(num); // 获取小数部分,不存在小数则获取空字符串 let decimal = temp && temp[0] ? temp[0...
2019-04-29 15:01:27 1565
原创 React 控制台报错
报错内容Can’t perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the ...
2019-04-20 11:52:52 526
原创 和为S的连续正数序列(JS)
题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序列。...
2019-04-10 11:53:46 545
原创 归并排序(JS)
归并排序(从小到大)算法复杂度:最好情况:O(nlogn) 最坏情况:O(nlogn) 平均情况:O(nlogn) 空间复杂度:O(n) 稳定性:稳定function mergeSort(arr, start, end) { if (start >= end) { return; } let mid = start + parseInt(...
2019-03-25 19:10:49 13921
原创 数组中的逆序对(归并排序)
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007C++#include<iostream>#include<vector> using namespace std;class Solution {...
2019-03-24 21:28:57 551
原创 最小的K个数(归并排序)
题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,C++#include<iostream>#include<vector> using namespace std;class Solution {public: void merge(int input[] , int s...
2019-03-24 18:03:37 997
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人