自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 业务场景中相似的代码太多?试试看模版方法+泛型+多态,一份代码适配n个相似业务流

对于算法可以抽象的流程,一般可以采用设计模式中的模版方法来解这个难题:模板方法模式是一种行为设计模式,它在超类中定义了一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。很多业务比如工单系统,都会遇到一个这样的业务场景,对于不同类型的工单,他们的查询思路大同小异,如果单独为每一个账单类型写一份代码,会产生至少10份流程非常相似的代码,从代码维护和简洁性上看明显存在不小的问题;其他的相似的代码都可以通过泛型,在父类中通过子类指定具体的类型参数,以泛型+多态的方式插入模版方法参数里。

2024-05-03 21:02:05 21

原创 0基础小白十分钟入门人工智能强化学习(附有实战源码)

强化学习入门实战

2023-01-28 14:29:42 502 1

原创 字节跳动前端实习三面

拿offer啦 好开心~~2021/12/1面试总结与收获1.如何判断大端和小端,设计一个算法?解决方案1:使用联合体union test {int a;char b;} c;int main(){c.a = 1;cout << (c.b & 1 ? “小端” : “大端”) << endl;return 0;}思路:对于一个联合体来说,会尽可能的节省空间去存放数据,比如如果我们用小端的话,会把01给到char b去存,如果大端,b存的是00,随意

2021-12-08 17:59:17 376

原创 CORS和JSONP

CORS:那cors的话,是不是可以理解为现在这个网页a去请求其他跨域的服务器上的资源,然后服务器返回这些资源,浏览器会检测返回的响应头里面有没有Access-Control-Allow-Orign这个字段,如果有的话并且这个字段的内容和我们现在网页a的域名是一样的,如果是就浏览器会接受这些资源数据JSONP:脚本不受同源的限制,可以写这样的请求去请求服务端的内容,然后返回数据过来嵌入了scrip这个标签里,但是只能使用get请求,了输...

2021-12-01 12:06:38 519

原创 csrf理解

就是说,比如现在浏览器我们在一个页面上进行了登录,这个cookie是存在浏览器缓存的,打开了另外一个页面,可能有存在img标签里的src,写入了get请求,请求的时候是能拿到cookie的,所以会出事

2021-12-01 12:02:02 533

原创 滴滴第一次面试

面试官真的很好很nice,给了我很多建议,聊的很开心~,虽然感觉有点不会的,但是他还建议我去百度,教我用transform去居中一个元素.建议我去学习vue问题如下html有什么块级标签,内连标签,区别,用margin设置一个内联的标签会怎么样css有什么标签选择器,怎么用,子选择器的选第二个咋选css的盒模型,我把面试官差点绕晕然后两个人都笑了2333,不过真的要反思一下自己,要把概念讲的清清楚楚的!css居中一个元素,他说我居然只知道两种方法,差评!!好好去看看复习css的浮动:用bfc清

2021-11-30 20:15:03 573

原创 当键入网址后,到网页显示,其间发生了什么

浏览器做的第一步工作是解析 URL生产 HTTP 请求信息真实地址查询 —— DNS域名解析,得到IP地址(IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。),DNS 获取到 IP 后,就可以把 HTTP 的传输工作交给操作系统中的协议栈TCP 传输数据之前,要先三次握手建立连接数据传输:http包上去tcp,ip,mac,然后被分割网络包后,由网卡发送,将数字信息转换为电信号,通过路由器和交换机来到了 服务端服务的得到.

2021-11-29 23:03:01 467

原创 对回流和重绘的理解

什么时候会发生回流呢*在所作的改变不影响元素的位置和元素的类别(激活伪类)其他情况下视为重绘特别要说的是,回流的时候当前节点的父元素和跟随它的子元素也都会回流

2021-11-25 18:45:34 96

原创 面试准备的心里

1.准备好草稿纸,算法题先写好思路和面试官讨论好以后再去动手比较好,然后常规题也去画草稿,写关键词回忆,帮助自己进入专注的状态2.自我介绍上次那样就可以3.最后问一下学习的建议,如何提升自己,在原理方面和实战方面的重心权重比对,4.请教一下需要做哪些准备,准备学习一门框架有推荐的么5.点明一下自己接触到前端这方面的时间很短(让他知道我是新手),实际上项目做完才投的简历,然后第二天就收到面试邀请了…严格来说最近一个多星期的去真正的开始静心去学习这些偏原理性的基础性内容,收获了很多:(举例),回去看项目

2021-11-25 18:42:11 64

原创 输入url到页面渲染出来

1.解析url2.缓存判断:强缓存和弱缓存3.DNS(域名)解析得到ip地址:DNS原理及解析过程详解 - 知乎 (zhihu.com)4.得到mac(物理地址)5.三次握手6.https加密7.返回数据8.页面渲染:5步9.四次挥手...

2021-11-22 17:27:13 1980

原创 前端http常问

1.你知道哪些状态码2.简述https原理,以及与http的区别客户端发送请求给服务端服务端分享自己的公钥给客户端客户端生成一个随机的密钥,并用公钥加密共享密钥给服务端服务端使用私钥解密,获取密钥就可以用密钥进行对称加密数据传输http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。使用不同的链接方式,端口也不同,一般而言,http协议的端口为80,https的端口为4433.操作系统中进程和线程怎么通信4.你知道哪些http头部5.怎么与服务端保

2021-11-18 22:18:27 236

原创 手写js系列之 bind 看不懂注解打死我

Function.prototype.myBind = function (context, ...args) { if (!context || context === null) { context = window; } // 创造唯一的key值 作为我们构造的context内部方法名 let fn = Symbol(); context[fn] .

2021-11-16 17:38:39 767

原创 CSS的面试题的思考

1.原网址:https://segmentfault.com/a/1190000013325778问题1:如何居中一个浮动元素?border: 1px solid red;float: left;position: absolute;width: 200px;height: 100px;left: 50%;top: 50%;margin: -50px 0 0 -100px; 其中,width和height的大小会影响margin的上和左的大小,思考一下:left的定义是这个box-

2021-11-15 13:04:42 161

原创 js的一些思考题

1.数组能够调用的函数有那些?pushpopsplicesliceshiftunshiftsortfindfindIndexmap/filter/reduce 等函数式编程方法还有一些原型链上的方法:toString/valudOf2.数据类型的判断多种方法:https://www.cnblogs.com/lingdu87/p/9152806.html3.死也跑不掉的循环机制https://juejin.cn/post/68449035128458608724.instance

2021-11-15 13:04:35 76

原创 前端面试准备过程好的网站总结

1.flex布局:http://static.vgee.cn/static/index.html+实例:(9筛子项目)+圣杯布局https://www.ruanyifeng.com/blog/2015/07/flex-examples.html2.在线编程网a…https://codepen.io/LandonSchropp/pen/KpzzGob…https://jsrun.net/58UKp/edit3.boxing看这儿:https://zhuanlan.zhihu.com/p/4282

2021-11-15 13:04:27 981

原创 js里的let和var区别

1.转载https://www.cnblogs.com/fly_dragon/p/8669057.html2.对于for循环+setTimeout的理解//1块级作用域// 对于let来说,分出了十块不同的作用域,里面的i值互不相通// 和影响,执行玩定时器后再打印十个不同的ifor (let i = 0; i < 10; i++) { setTimeout(function() { console.log(i); // i 是循环体内局部作用域,不受外界影响。 }

2021-11-14 11:15:51 843

原创 js的同步与异步问题

1.串行我们可以编写一个流程控制函数,让它来控制异步任务,一个任务完成以后,再执行另一个。这就叫串行执行。var items = [1, 2, 3, 4, 5, 6]var results = []function async(arg, callback) { console.log('参数为 ' + arg + ' , 1秒后返回结果') setTimeout(function () { callback(arg * 2) }, 1000)}function fina

2021-11-12 11:03:38 533

原创 JS的变量提升 以及let var的问题

大原则:使用var变量的声明被提前到作用域顶部,赋值则保留在原地(重点)JS变量的声明被提前到作用域顶部,赋值保留在原地;(不要小看这句总结)请看下面这个例子:var color = “blue”;function getColor(){console.log(color); // undefinedvar color = “red”;return color;}console.log(getColor()); // red这就相当于var color = “blue”;fu

2021-11-11 19:49:37 95

原创 对于解决margin坍塌而采用的Block Formatting Contexts

1.通俗一点来讲,可以把 BFC 理解为一个封闭的大箱子,箱子内部的元素无论如何翻江倒海,都不会影响到外部。2.只要元素满足下面任一条件即可触发 BFC 特性:body 根元素浮动元素:float 除 none 以外的值绝对定位元素:position (absolute、fixed)display 为 inline-block、table-cells、flexoverflow 除了 visible 以外的值 (hidden、auto、scroll)3.div{width: 100px;h

2021-11-11 14:43:32 181

原创 对于清除浮动的理解

1.浮动元素会脱离html文本流,相对于从标签那些里脱去,会改变html的样子2.例https://www.w3school.com.cn/tiy/t.asp?f=css_layout_clear3.在这里插入代码片<!DOCTYPE html><html><head><style>.div1 { float: left; width: 100px; height: 50px; margin: 10px; border: 3p

2021-11-10 23:54:33 193

转载 记录一下对于css的position属性的理解

https://zhuanlan.zhihu.com/p/34486016

2021-11-10 11:09:58 49

原创 有时候不要总想着用数组 链表对于插入复杂的题目很有帮助的

D(选做题) 括号匹配 (10 分)请编写程序判断一个包含“(”和“)”的括号序列是否匹配。如匹配则输出Match;如不匹配,计算出使该序列变为匹配序列所需添加的最少括号数目(只允许在该序列开始和结尾处添加括号),并输出经添加最少括号后得到的合法匹配序列。输入格式:输入为若干行,每行一个字符串,包含不超过105个括号。输入行数不超过10行。输出格式:对于输入的每个括号序列输出1行或2行信息。若输入的括号序列匹配,则输出Match。若不匹配,则输出分为2行,第1行为一个整数,表示将该序列变为匹配

2021-11-09 13:43:52 53

原创 关于css样式顺序前后定义的问题

背景 在开发一个盲盒交友的小程序前段时候 按下按钮发现不能实现按钮转换背景颜色<view class="choose" hidden="{{hidden}}" style="flex-direction:row;" show="false"> <button class="boys" bindtap="chooseboys" hover-class="hover">抽取小哥哥 </button> <image src="/pages/imag

2021-11-09 00:38:47 139

原创 双指针的新感悟

在做字节跳动周赛时候看到一个很有趣的题解,原来双指针不一定是得用在排序的数组里头https://leetcode-cn.com/problems/maximum-difference-between-increasing-elements/解法一:栈我们从后面开始遍历数组,先把最后一个入栈,当发现一个元素比栈顶的大说明这个元素可以取代栈顶,进栈,当一个元素比之小,可以把他拿进去和ans比较代码如下O(n):class Solution {public:stack<int>record

2021-10-29 09:07:01 53

原创 如何判断一个数是3的n次幂呢

折半查找比如3*3*3*3*3*2=486先去/3发现整除/3的两次幂/3的四次幂/3的八次幂好了不行了,回退一下到/3的四次幂 再重复执行上面过程写出一个递归代码来 要求时间复杂度logn的那种#include<iostream>#include<cmath>using namespace std;int is_power_three(int a) { if (a == 1) return 1; if (a % 3 != 0) return 0;

2021-10-28 21:20:32 1182 1

原创 kmp啊啊啊

#include<iostream>#include<cstring>#include <algorithm>using namespace std;int *next;int caculate_rear(string s) { return 0;}int caculate_second_same(string s) { return 0;}void GetNext(string p, int* next) { int pLen

2021-10-25 23:21:00 71 1

原创 分治思想初探

1.最经典的是分治排序2.实际的应用:https://leetcode-cn.com/problems/different-ways-to-add-parentheses/class Solution {public: vector<int> diffWaysToCompute(string expression) { //存储中间值 vector<int> count; for(int i = 0; i < exp

2021-10-25 10:20:12 81 1

原创 关于埃筛的一些感悟

1.简单的应用之素数速度判,有点类似预处理的味道https://blog.csdn.net/GD_ONE/article/details/1046602942.`对于一个整型数组(p1​,p2​,…,pn​),如果某个下标小的元素是下标大的元素的倍数,我们称这两个元素为倍数对。形式化地,若存在i和j,满足i<j且pi​是pj​的倍数,则称(pi​,pj​)为倍数对。给定一个整型数组,数组元素是整数1…n的一个排列组合,请编写程序,计算该数组中所有倍数对的数

2021-10-18 19:50:12 269

原创 初识状态机

1.引入 模电里的状态转移和状态机几乎一模一样,在于给出一定条件下的转移的模拟题2.例子https://www.nowcoder.com/practice/42852fd7045c442192fa89404ab42e92?tpId=137&&tqId=33895&rp=1&ru=/ta/exam-bytedance&qru=/ta/exam-bytedance/question-rankingg见讨论第一题好好学习 宁静致远 不要因为一些很傻的事去干扰自己的计

2021-10-15 11:03:52 66

原创 并查集的利用

https://leetcode-cn.com/problems/number-of-provinces/.https://www.nowcoder.com/test/question/done?tid=48978417&qid=1795704#summary力扣547:class UnionFind{public: int find(int x){ int root = x; while(father[root] != -1){

2021-10-12 13:59:49 76

原创 腾讯校招编程题

1.https://www.nowcoder.com/test/question/done?tid=48977681&qid=1795704aabb那个子串题目链接:https://www.nowcoder.com/questionTerminal/c59d9690061e448fb8ec7d744c20ebff?f=discussion来源:牛客网#include<iostream>#include<set> using namespace std; s

2021-10-12 09:24:44 92

原创 字节跳动编程题注解与思考

存在n+1个房间,每个房间依次为房间1 2 3...i,每个房间都存在一个传送门,i房间的传送门可以把人传送到房间pi(1<=pi<=i),现在路人甲从房间1开始出发(当前房间1即第一次访问),每次移动他有两种移动策略: A. 如果访问过当前房间 i 偶数次,那么下一次移动到房间i+1; B. 如果访问过当前房间 i 奇数次,那么移动到房间pi;现在路人甲想知道移动到房间n+1一共需要多少次移动;输入描述:第一行包括一个数字n(30%数据1<=n<=100,10

2021-10-11 19:34:53 159 1

原创 分治算法,后序遍历

/*** name:分治算法* time:15/8/9 14:25* environment: ubuntu 14.04,sublime text 3*/#include <iostream>using namespace std;/** 打印数组*/void printArray(int array[], int length){ for (int i = 0; i < length; ++i) { cout << array[i] <.

2021-10-09 20:19:09 60

原创 第n次实现快排,真的是常做常新

#include<iostream>#include<vector>using namespace std;int sort(int left, int right, vector<int>& a);void quick_sort(vector<int>& a, int left, int right) { if (left >= right) return; int mid = sort(left,right,

2021-10-09 19:45:20 29

原创 对于剑指 92 粉刷房子的理解

假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表示的。例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[1][2] 表示第 1 号房子粉刷成绿色的花费,以此类推。请计算出粉刷完所有房子最少的花费成本。

2021-10-07 11:33:16 52

原创 对kmp的一些感悟

看了许久的kmp,知其然也不知其所以然就很难受…对于失败函数来说,就是遍历每一个字符j,让以j为结尾的后缀字符串等于以0开始的前缀字符串的最长的长度 例如abcabmgk,j=4时候,最后的ab=最前的ab,所以 f(4)=2那么这个失败函数有什么用呢,我们知道朴素的算法来说,待匹配串需要模式串去一个一个的用模式串的首字母去对齐待匹配串的每一个字母,但引入失败函数后我们能做的就是通过查找现在匹配失败的元素的前一个元素g 的 f[j-1],然后就把模式串的前缀和g一样的抽过来对齐abcdabcggh

2021-10-04 09:57:21 90 1

原创 回溯经典之,组合 排列

#include<iostream>#include<vector>using namespace std;//组合vector<vector<int>>ans;vector<int>record;int c;void quick_sort(int left, int right, vector<int>& a);int sort(vector<int>& a, int left, int r

2021-09-22 12:10:29 41

原创 一些小随笔

1.逆转链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseList(ListNode* head) {//定义:反转该链表并输出反转后链表的头节点

2021-09-20 20:34:49 231

原创 动态规划最优子结构的理解

题目:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。```cppclass Solution { public int lengthOfLIS(int[] nums) { if(nums.length == 0) return 0; int[] dp = new int[nums.len

2021-09-20 20:20:22 163

原创 并查集的好文

安利一篇并查集的好文https://leetcode-cn.com/problems/number-of-provinces/solution/python-duo-tu-xiang-jie-bing-cha-ji-by-m-vjdr/

2021-09-18 14:49:33 42

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除