E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
offer-算法之道
海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法
算法之道
blog前言一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文
帝王铠
·
2023-04-21 05:25
学习历程
海量数据处理
剑指
offer-
替换空格
替换空格一、解题思想二、代码的实现三、总结一、解题思想题目:请实现一个函数,把字符串中的每个空格替换成”%20“。例如:输入”Wearehappy.“,则输出”We%20are%20happy.“。看到这个题目,我第一想到的是,把字符串遍历一遍,每遇到一个空格就把空格替换成”%20“,由于是把一个字符替换成3个字符,所以我们必须把后面所有的字符都向后移动2个字符位置,否则就有两个字符背覆盖掉。但是
川子767
·
2023-04-13 05:12
剑指offer编程题
算法
数据结构
c语言
剑指
offer-
重建二叉树C++实现
剑指
offer-
重建二叉树C++实现原题链接#include#include#includeusingnamespacestd;structTreeNode{intval;structTreeNode*
阿吉的CV之路
·
2023-04-12 02:01
leetcode刷题总结
c++
leetcode
剑指offer
剑指
offer-
刷题总结
1.前言 大概过了一两遍剑指offer,思路基本上是复制网上大佬的思想。希望面试的时候能自己默写出来把,现在把剑指offer的题型和结题思路总结一下,便于后序复习和进阶。2.1链表题JZ3从尾到头打印链表思路1:利用栈先入后出的特性,顺序存入,倒序打印思路2:利用两个节点(双指针)原地反转后再打印出来思路3:利用stl的reverse()函数实现反转后再打印JZ14链表中倒数最后k个结点思路1:
小研一枚
·
2023-04-11 01:01
剑指offerc
c++
面试
链表
数据结构
【剑指offer】面试题61:扑克牌中的顺子【C++版本】
【剑指
offer-
第二版】部分题目与解答【C++版本】题目:扑克牌中的顺子从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。
DigitalNexus
·
2023-04-11 01:58
后台
剑指offer
C++
剑指offer
C++
扑克牌中的顺子
剑指
offer-
二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。本题考查的知识点是:数组、查找首先回顾下常用的查找算法:顺序查找和二分查找顺序查找:逐个的查找,找到返回true或该元素下标,找不到则返回false或-1;二分查找:前提是有序数组中查找,从中间元素开
Estelle_Z
·
2023-04-09 19:02
算法
数据结构
剑指
Offer-
把数组排成最小的数
题目描述[把数组排成最小的数]输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解题思路1.将数组自定义排序compare(x,y),排序规则如下:将数组分别拼接成字符串xy和yx;returnxy=y;依次连接排序后的数组代码classSolution{public:st
一只可爱的柠檬树
·
2023-04-07 04:02
剑指
Offer-
面试题42-连续子数组的最大和
题目描述:输入一个整形数组,数组里有整数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度问O(n)。boolisInputValid=false;intfind(int*arr,intlength){if(arr==NULL&&lengthgreatNum){greatNum=num;}}returngreatNum;}
一路向北gs
·
2023-04-05 19:23
2019-09-10[剑指
offer-
]不用加减乘除做加法
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。classSolution{public:intAdd(intnum1,intnum2){while(num2){intsum=num1^num2;num2=(num1&num2)<<1;num1=sum;}returnnum1;}};
Coding破耳
·
2023-04-05 02:40
和吴昊一起玩推理(第二季首映式)Round 11 —— 从无有到无穷
邹恒明(原来华科大的校友)在美国的密歇根大学读博士的时期出国三本书,以上是他的第一本《
算法之道
》(现在已经出了第二版了),我大三的时候将他的三本书都基本上看完了,开篇有一段很犀利的文字,他认为上帝为什么选择第六天造人呢
weixin_30362233
·
2023-04-04 03:48
数据结构与算法
操作系统
力扣算法合集
鸡汤篇排序算法二叉树哈希表栈和队列数组链表字符串算法套路双指针排序贪心思想二分查找搜索动态规划斐波那契数列矩阵路径数组区间分割整数最长递增子序列01背包股票交易字符串编辑算法题解动态规划剑指offer剑指
offer
小胜算法
·
2023-04-02 03:18
算法
排序
递归
算法
leetcode
数据结构
LeetCode-剑指
offer-
回溯算法-括号生成-专注技术的小飞
文章目录括号生成思路:上测试代码:喜欢编程的小伙伴可以直接拿去:括号生成数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。示例:输入:n=3输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]小编写文章之前还去看了看迭代和动态规划思路:1、二叉树的根节点放一个“(”,因为要有效,所以第一个不能是“)”2、依次在左右子
Malegod丶小飞
·
2023-03-29 14:25
#
回溯算法
二叉树
剑指
offer-
礼物的最大价值-JavaScript
题目描述:在一个m*n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?解法:动态规划声明状态数组dp是一个m*n的二维数组。dp[i][j]的默认值是0,它的含义是:在坐标点(i,j)处,能得到的最大价值礼物。所以,整个棋
心谭
·
2023-03-27 14:15
剑指offer刷题总结
按照笔者推荐的刷题过程,剑指
offer-
>Leetcode动态规划->面试前再过一遍剑指offer我觉得这个刷题过程的可行性是很高的,于是在时间规定下,我决定在一个星期之内按照牛客上剑指offer的题目刷完对应的题
ZhuNian的学习乐园
·
2023-03-24 16:10
LeetCode
leetcode
剑指
offer-
不用加减乘除做加法
TopicdescribesTopicdescribesNowcoderLinkTrainofthoughtWhenwehaveaproblemwherewearenotallowedtousethefouroperations,ourfirstthoughtmusttodoitwithbitwiseoperations.thisquestionweneedtwooperations,1.xor(
关玮琳linSir
·
2023-03-24 05:33
剑指
offer-
II. 和为s的连续正数序列
这是一道数学题,自己连“暴力法”都没想出来!看了题解法一:枚举+暴力法枚举每个正整数为起点,判断以它为起点的序列和sum是否等于target即可,由于题目要求序列长度至少大于2,所以枚举的上界为(target-1)/2法二:窗口滑动+双指针法我们用两个指针l(left)和r(right)表示当前枚举到的以l为起点到r的区间,sum表示[l,r]的区间和,求得sum=(l+r)*(r-l+1)/2起
棉花糖7
·
2023-03-22 17:49
剑指
offer-
连续子数组的最大和(JavaScript实现)
虽然这题在leetcode上标注的是「简单」难度,但是解法有4种,并且都非常具有代表性。比较容易想到的是基础的动态规划法。解法1:动态规划定义状态数组dp[i]的含义:数组中元素下标为[0,i]的连续子数组最大和。状态转移的过程如下:初始情况:dp[0]=nums[0]若nums[i]>0,那么dp[i]=nums[i]+dp[i-1]若nums[i]0){dp[i]+=dp[i-1];}res=
心谭
·
2023-03-21 20:10
剑指
offer-
数组中数字出现的次数II-JavaScript
题目描述:在一个数组nums中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。这题和《LeetCode137.只出现一次的数字II》一样。解法1:最直观的哈希表解决思路很简单,直接遍历一边数组,然后统计每个数字的出现次数,存入哈希表中。然后再遍历哈希表中的记录,返回出现次数为1的数字。代码实现如下://ac地址:https://leetcode-cn.com/probl
心谭
·
2023-03-18 10:17
剑指
offer-
树
importjava.util.Queue;importjava.util.Stack;/***@ClassNametree*@Description**遍历二叉树**分别以递归和非递归实现前序、中序、后序遍历二叉树、与层级遍历*@VersionV1.0**/publicclasstree{//递归//前序遍历publicvoidpreOrder(Nodenode){if(node==null){
二毛_220d
·
2023-03-11 22:12
JavaScript刷LeetCode拿
offer-
栈相关题目
1.栈是什么?一种先进后出的数据结构;JavaScript没有栈的结构;可以用array实现栈的功能入栈push(x);出栈pop();conststack=[];//入栈stack.push(1);stack.push(2);//出栈constitem1=stack.pop();constitem2=stack.pop();2.什么场景下用栈所有后进先出的结构。2.1十进制转换为二进制:最后余数
·
2023-02-20 13:02
JavaScript刷LeetCode拿
offer-
栈相关题目
1.栈是什么?一种先进后出的数据结构;JavaScript没有栈的结构;可以用array实现栈的功能入栈push(x);出栈pop();conststack=[];//入栈stack.push(1);stack.push(2);//出栈constitem1=stack.pop();constitem2=stack.pop();2.什么场景下用栈所有后进先出的结构。2.1十进制转换为二进制:最后余数
·
2023-02-20 13:01
JavaScript刷LeetCode拿
offer-
树的遍历
什么是树一种分层数据的抽象模型。前端工作中常见的树包括:DOM树,级联选择,树形控件JS中没有树,可以用Object和Array构建树树的常用操作:深度/广度优先遍历,先中后序遍历深度优先遍历访问根节点对根节点的children挨个进行深度优先遍历代码展示:consttree={val:'a',children:[{val:'b',children:[{val:'d',children:[]},{
·
2023-02-20 13:00
JavaScript刷LeetCode拿
offer-
高频链表题
首先需要了解链表的概念先把next记录下来无论是插入,删除,还是翻转等等操作,先把next指针用临时变量保存起来,这可以解决90%重组链表中指向出错的问题,如果不知道什么时候需要用到守卫,那就都用类型守卫emptyNode是创建的一个空的节点,并将它连接到head节点之前,无论链表进行任何操作,emptyNode都指向最后的头节点,是一个很实用的小方法,如果不知道什么时候用,什么时候不用,那就先都
·
2023-02-19 15:58
JavaScript刷LeetCode拿
offer-
经典高频40题vaScript刷LeetCode拿
offer-
经典高频40题
工作太忙没有时间刷算法题,面试的时候好心虚。这里双手奉上40道LeetCode上经典面试算法题,整理的内容有点长,建议先收藏,慢慢消化,在来年顺利拿到满意的offer。1、[LeetCode]两数之和给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定nums=[2,7,11,15],target=9因为nums[0]
hellocoder2028
·
2023-02-17 02:52
leetcode
javascript
JavaScript刷LeetCode拿
offer-
并查集
前言并查集是合并集合的方式,对于一些关联性的集合,合并查询的方式可以使得题目分类处理,是一种题型的解决方案,这里最关键是构思好集合之间的关联关系;在这一part中,仅仅只是对部分题做了了解学习,远远没有达到可以手撕的程度,但是面试过程中遇到的并不算特别多,所以属于一个了解补充的part,大家可以学习学习,还是挺有意思的;下一part做分治法正文这是一篇水文,国庆回家也就坚持每天做一丢丢题目,然后保
·
2023-02-07 11:05
JavaScript刷LeetCode拿
offer-
双指针技巧(上)
一、前言 一般情况下,遍历数组(或者字符串)操作,都是采用单指针从前往后或者从后往前依次访问数组(或者字符串)中的元素。 而对于以下情况,只采用单指针处理,则会徒增时间复杂度和空间复杂度:例如:找到两个数使得它们相加之和等于目标数,采用单指针处理,则需要嵌套循环,使得时间复杂度增长为O(n^2);再例如:翻转数组,采用单指针处理,则需要额外内存空间,使得空间复杂度增长为O(n);利用双指针技巧
·
2023-02-06 11:32
JavaScript刷LeetCode拿
offer-
分治
前言今天没啥前言,分治很难,主要难在如何拆分后比较好治理合并,这比二分这些只要拆了就结束要难上一个level,所以这里属于出入分治这种想法的思维,后续会尽可能的锻炼这样的做法;做一道分治,如果能用其他方法代替的时候,一般分治不算是最优解,起码很伤脑子;正文概念分治即分而治之,所以要分成两部分分:将一个规模为N的问题分解为若干个规模较小的子问题治:根据子问题的解求原问题关键点一定是先分再治治一定是利
·
2023-02-06 11:01
剑指
offer-
顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4X4矩阵:12345678910111213141516则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路使用up存储最上边行号,down存最下边行号,left存最左边列号,right存最右边列号将上方的值添加进list中,通过判断up>down结束,再将右边的值放入.
纳萨利克
·
2023-02-05 11:03
剑指
offer-
数值的整次方
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0publicclassSolution{publicdoublePower(doublebase,intexponent){if(base==0.0){return0.0;}doubleresult=1.0d;intt=exponent>0?expo
纳萨利克
·
2023-02-05 03:25
剑指
offer-
数组中的逆序对-JavaScript
题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。解法1:暴力法(TLE)直接双重循环,挨个检查是否为逆序对。代码实现比较简单:/***@param{number[]}nums*@return{number}*/varreversePairs=function(nums){letres=0;constlength=
心谭
·
2023-02-01 20:02
【Golang】LeetCode-剑指
Offer-
面试题38-字符串的排列
题目输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s=“abc”输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]限制:1<=s的长度<=8来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcof解
士多啤梨先生
·
2023-01-31 22:38
LeetCode力扣个人题解
剪枝
leetcode
算法
字符串
golang
平安科技产品实习月度总结
(。・∀・)ノ゙嗨,大家好,我是小熊故事源于今年二月份,在“Candy实习吧”看到了平安科技的产品实习生需求,然后历经“投递简历-线上面试-实习
offer-
办理入职”,就这样开启了我的产品实习生活。
Tivadar
·
2023-01-31 08:48
剑指
offer-
链表倒数第k个节点
输入一个链表,输出该链表中倒数第k个结点。思路遍历链表,将i移到k位,接下来j和i一起移动,直到i到达最后,j位就是倒数第k个节点Java/*publicclassListNode{intval;ListNodenext=null;ListNode(intval){this.val=val;}}*/publicclassSolution{publicListNodeFindKthToTail(Li
纳萨利克
·
2023-01-28 07:14
当我们在招产品时,在想什么
谈到招聘,从流程上讲一共有6个:争取到HC-发布职位-筛选简历-面试-发
offer-
入职。
打不出的喷嚏
·
2023-01-26 01:19
JavaScript刷LeetCode拿
offer-
双指针技巧(上)
一、前言 一般情况下,遍历数组(或者字符串)操作,都是采用单指针从前往后或者从后往前依次访问数组(或者字符串)中的元素。 而对于以下情况,只采用单指针处理,则会徒增时间复杂度和空间复杂度:例如:找到两个数使得它们相加之和等于目标数,采用单指针处理,则需要嵌套循环,使得时间复杂度增长为O(n^2);再例如:翻转数组,采用单指针处理,则需要额外内存空间,使得空间复杂度增长为O(n);利用双指针技巧
·
2023-01-09 10:50
JavaScript刷LeetCode拿
offer-
二叉树层序遍历篇
前言博主最近在刷leetcode,做到二叉树套题的时候发现很多题的解题思路都是基于二叉树的层序遍历来完成的,因此写下这篇文章,记录一下二叉树层序遍历这件"神器"在实战的运用。[leetcode]102.二叉树的层序遍历二叉树的层序遍历与传统的前序、中序、后序遍历都有一些区别,他是按层级、从左到右、从上到下进行遍历的,因此当我在遍历当前层节点的时候,肯定需要记录当前层所有节点的left、right,
·
2023-01-09 09:40
JavaScript刷LeetCode拿
offer-
二叉树层序遍历篇
前言博主最近在刷leetcode,做到二叉树套题的时候发现很多题的解题思路都是基于二叉树的层序遍历来完成的,因此写下这篇文章,记录一下二叉树层序遍历这件"神器"在实战的运用。[leetcode]102.二叉树的层序遍历二叉树的层序遍历与传统的前序、中序、后序遍历都有一些区别,他是按层级、从左到右、从上到下进行遍历的,因此当我在遍历当前层节点的时候,肯定需要记录当前层所有节点的left、right,
·
2023-01-09 09:35
JavaScript刷LeetCode拿
offer-
位运算
前言经常会有人问,作为前端,你在实际工作中用到过哪些算法,而我回答一般是,树和位运算;想想webpack上的那些依赖的版本类型,想想react源码中的那些flag的定义和运算,我觉得还是很有必要去学习一下位运算到底能解决一些什么问题正文其实位运算最典型的就运算符号就是,|&^三个,但是运用到具体题目上就很灵活了,基本这个系列也只是复习一下,知道一下如何用二进制的位来存储获取值,而用二进制位这样的数
·
2023-01-09 09:03
SVM的讲解非常不错的文章(转)
出处:结构之法
算法之道
blog。
yuhushangwei
·
2023-01-07 17:44
学习笔记
机器学习
算法
machine
learning
svm
数据挖掘
机器学习九大算法---支持向量机
机器学习九大算法---支持向量机出处:结构之法
算法之道
blog。
weixin_30325071
·
2023-01-07 17:42
人工智能
面试
数据结构与算法
JavaScript刷LeetCode拿
offer-
栈相关题目
1.栈是什么?一种先进后出的数据结构;JavaScript没有栈的结构;可以用array实现栈的功能入栈push(x);出栈pop();conststack=[];//入栈stack.push(1);stack.push(2);//出栈constitem1=stack.pop();constitem2=stack.pop();2.什么场景下用栈所有后进先出的结构。2.1十进制转换为二进制:最后余数
·
2023-01-05 12:53
JavaScript刷LeetCode拿
offer-
树的遍历
什么是树一种分层数据的抽象模型。前端工作中常见的树包括:DOM树,级联选择,树形控件JS中没有树,可以用Object和Array构建树树的常用操作:深度/广度优先遍历,先中后序遍历深度优先遍历访问根节点对根节点的children挨个进行深度优先遍历代码展示:consttree={val:'a',children:[{val:'b',children:[{val:'d',children:[]},{
·
2023-01-05 10:10
JavaScript刷LeetCode拿
offer-
高频链表题
首先需要了解链表的概念先把next记录下来无论是插入,删除,还是翻转等等操作,先把next指针用临时变量保存起来,这可以解决90%重组链表中指向出错的问题,如果不知道什么时候需要用到守卫,那就都用类型守卫emptyNode是创建的一个空的节点,并将它连接到head节点之前,无论链表进行任何操作,emptyNode都指向最后的头节点,是一个很实用的小方法,如果不知道什么时候用,什么时候不用,那就先都
·
2023-01-03 12:31
JavaScript刷LeetCode拿
offer-
高频链表题
首先需要了解链表的概念先把next记录下来无论是插入,删除,还是翻转等等操作,先把next指针用临时变量保存起来,这可以解决90%重组链表中指向出错的问题,如果不知道什么时候需要用到守卫,那就都用类型守卫emptyNode是创建的一个空的节点,并将它连接到head节点之前,无论链表进行任何操作,emptyNode都指向最后的头节点,是一个很实用的小方法,如果不知道什么时候用,什么时候不用,那就先都
·
2023-01-03 12:56
JavaScript刷LeetCode拿
offer-
高频链表题
首先需要了解链表的概念先把next记录下来无论是插入,删除,还是翻转等等操作,先把next指针用临时变量保存起来,这可以解决90%重组链表中指向出错的问题,如果不知道什么时候需要用到守卫,那就都用类型守卫emptyNode是创建的一个空的节点,并将它连接到head节点之前,无论链表进行任何操作,emptyNode都指向最后的头节点,是一个很实用的小方法,如果不知道什么时候用,什么时候不用,那就先都
·
2023-01-03 12:24
ML常用资料链接
南瓜书PumpkinBook---公式LeeML-Notes--李宏毅ML常用资料链接1.1000题BAT机器学习面试1000题系列(第1~305题)_结构之法
算法之道
-CSDN博客2.EM算法详解EM
waeceo
·
2023-01-03 11:49
machineLean
算法
JavaScript刷LeetCode拿
offer-
贪心算法
前言学习算法的时候,总会有一些让人生畏的名词,比方动态规划,贪心算法等,听着就很难;而这一part就是为了攻破之前一直没有系统学习的贪心算法;有一说一,做了这些贪心题,其实并没觉得发现了什么套路新大陆等,因为贪心有的时候很巧妙,而且想到就是想到了,没想到可能就不用贪心去做了,所以这属于做完只是刷了存在感的part;唯一的收获就是减轻了对贪心的恐惧,明白它也就是一种局部贪心导致全局贪心得到最优解的一
·
2023-01-02 13:41
JavaScript刷LeetCode拿
offer-
链表篇
一、链表链表(LinkedList)是一种常见的基础数据结构,也是线性表的一种。一个线性表是n个具有相同特性的数据元素的有限序列,线性表的存储结构分为两类:顺序表(数组)和链表。链表相比较顺序表,它并不会按照线性的顺序存储数据,而是在每个节点里存储到下一个节点的指针,在JavaScript中,我们可以这样描述链表中的节点:二、链表vs数组存储方式的不同:数组在使用前需要先申请占用内存的大小,并且是
·
2023-01-02 13:07
JavaScript刷LeetCode拿
offer-
贪心算法
前言学习算法的时候,总会有一些让人生畏的名词,比方动态规划,贪心算法等,听着就很难;而这一part就是为了攻破之前一直没有系统学习的贪心算法;有一说一,做了这些贪心题,其实并没觉得发现了什么套路新大陆等,因为贪心有的时候很巧妙,而且想到就是想到了,没想到可能就不用贪心去做了,所以这属于做完只是刷了存在感的part;唯一的收获就是减轻了对贪心的恐惧,明白它也就是一种局部贪心导致全局贪心得到最优解的一
·
2023-01-02 13:07
JavaScript刷LeetCode拿
offer-
滑动窗口
一、前言 《JavaScript刷LeetCode拿
offer-
双指针技巧》中,简单地介绍了双指针技巧相比较单指针的优点,以及结合Easy难度的题目带大家进一步了解双指针的应用。
·
2022-12-20 10:33
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他