• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

标签:算法

一道看完答案你会觉得很沙雕的「动态规划算法题」

题目来源于 LeetCode 第 877 号问题:石子游戏。为了更好理解,我改编了一下题目,描述是这样的:题目描述喜羊羊和灰太狼用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。喜羊羊和灰太狼轮流进行,喜羊羊先开始。 每回合,玩家从行的开……

把握春招,收下这份 GitHub 万星的 ML 算法面试大全!

 [导 读]春季到来,春招不久也会开始。在本项目中,作者为大家准备了 ML 算法工程师面试指南,它提供了完整的面试知识点、编程题及题解、各科技公司的面试题锦等内容。目前该 GitHub 项目已经有 1 万+的收藏量,想要跳一跳的同学快来试试吧。项目地址:https://github.com/imhuay/Algorithm_Intervi……

做出这道题,说明你很有机会进入 Google

题目描述翻转一棵二叉树。示例:输入:     4   /     2     7 /    / 1   3 6   9输出:     4   /     7     2 /    / 9   6 3   1解法这道题确实难度不大,可以用 递归 和 非递归 两种方法来解。先来看递归的方法,写法非……

算法科普:有趣的霍夫曼编码

前言霍夫曼编码 ( Huffman coding ) 是一种可变长的前缀码。霍夫曼编码使用的算法是 David A. Huffman 还是在MIT 的学生时提出的,并且在 1952 年发表了名为《 A Method for the Construction of Minimum-Redundancy Codes 》的文章。编码这种编码的过程……

算法科普:神秘的 DES 加密算法

1 前言DES 算法是一种常见的分组加密算法,由IBM公司在1971年提出。DES 算法是分组加密算法的典型代表,同时也是应用最为广泛的对称加密算法。本文将详细讲述DES 的原理以及实现过程。1.1 明文明文是指没有经过加密的数据。一般而言,明文都是等待传输的数据。由于没有经过加密,明文很容易被识别与破解,因此在传输明文之前必须进行加密……

面试官,别问我 Bit Operation 了!

在面试环节中,面试官很喜欢问一些特别的题目,这些题目有着特殊的解法,如果回答的巧妙往往能在面试中加分。在这些题目中,位操作(Bit Operation)就是极具魅力的一种。今天,吴师兄就来分享 LeetCode 上几道跟 Bit Operation 有关的题目。题目一: 位 1 的个数LeetCode上第 191 号问题:编写一个函数,输……

把 14 亿中国人都拉到一个微信群,在技术上能实现吗?

“最近,知乎上有一个非常热门的问题:“把 14 亿中国人民都拉到一个微信群里在技术上能实现吗?”实际上,根据国家统计局的数据,截至 2017 年末,中国大陆总人口为 13 亿 9008 万人(包括 31 个省、自治区、直辖市和中国人民解放军现役军人,不包括香港、澳门和台湾以及海外华侨人数),早已超过 13 亿。目前,微信……

加密算法介绍及加密算法的选择

加密算法介绍「一. 密码学简介」据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标……

Java提供的排序算法是怎么实现的?快排?

一、Arrays.sort()的排序算法先来看看Arrays.sort(),sort方法拥有很多的重载,有十几种,以int查看如下:可以看到这里有一个DualPivotQuicksort,DualPivotQuicksort翻译过来就是双轴快速排序(关于双轴快速排序我们后期在讨论,可以认为是对我们普通使用的快排的一种改进,另外还有一种改进是……

[算法总结] 搞定 BAT 面试——几道常见的子符串算法题

1. KMP 算法谈到字符串问题,不得不提的就是 KMP 算法,它是用来解决字符串查找的问题,可以在一个字符串(S)中查找一个子串(W)出现的位置。KMP 算法把字符匹配的时间复杂度缩小到 O(m+n) ,而空间复杂度也只有O(m)。因为“暴力搜索”的方法会反复回溯主串,导致效率低下,而KMP算法可以利用已经部分匹配这个有效信息,保持主串上的指……

[BAT面试必备] ——几道常见的链表算法题

1. 两数相加题目描述Leetcode:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2->4->3)+(5->6->4)输出:7->0-&……

一道让你拍案叫绝的算法题

这是一道看完答案会觉得很简单,但做之前很难想到答案的题目!!!不信?Let us go !题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]    输出: ……

BAT 经典算法笔试题 —— 磁盘多路归并排序

在 LevelDB 数据库中高层数据下沉到低层时需要经历一次 Major Compaction,将高层文件的有序键值对和低层文件的多个有序键值对进行归并排序。磁盘多路归并排序算法的输入是来自多个磁盘文件的有序键值对,在内存中将这些文件的键值对进行排序,然后输出到一到多个新的磁盘文件中。图片多路归并排序在大数据领域也是常用的算法,常用于海……

一致性哈希算法学习及JAVA代码实现分析

1,对于待存储的海量数据,如何将它们分配到各个机器中去?—数据分片与路由当数据量很大时,通过改善单机硬件资源的纵向扩充方式来存储数据变得越来越不适用,而通过增加机器数目来获得水平横向扩展的方式则越来越流行。因此,就有个问题,如何将这些海量的数据分配到各个机器中?数据分布到各个机器存储之后,又如何进行查找?这里主要记录一致性H……

一致性哈希算法很难?看完这篇全懂了

“在本文中,我们将了解一致性哈希是什么、为什么它是可扩展的分布式系统架构中的一个必要工具。此外,我们将探究可用于大规模实施该算法的数据结构。最后,我们还将探究一个实际例子。一致性哈希到底是什么?还记得你在大学里学到的那种传统的朴素哈希方法吗?使用哈希函数,我们确保计算机程序所需的资源能够高效地存储在……

一致性哈希算法原理

一致性Hash算法背景  一致性哈希算法在1997年由麻省理工学院的Karger等人在 解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题 ,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。  但现在 一致性hash算法在分布式系统中也……

面试必备:什么是一致性Hash算法?

最近有小伙伴跑过来问什么是Hash一致性算法,说面试的时候被问到了,因为不了解,所以就没有回答上,问我有没有相应的学习资料推荐,当时上班,没时间回复,晚上回去了就忘了这件事,今天突然看到这个,加班为大家整理一下什么是Hash一致性算法,希望对大家有帮助!文末送书,长按抽奖助手小程序即可参与,祝君好运!经常阅读我文章的小伙伴应该都很熟悉我写文章的……

拓扑排序

拓扑排序是算法课经典内容之一,但是学的时候如果只是被动接收,那就很容易沦为“算法背诵”,很快就记忆模糊了。这一次同样的,我们从主动发明的出发点去搞清楚这个问题的机理,就很难遗忘了。跟上回一样,从发明的角度,我们只要问两点:(1) 我们想解决一个什么问题?(2) 这个问题如何最好地解决?1动机:前提关系本文中我们想解决的各……

stackoverflow:为什么排序后的数组要比未排序数组运行快3倍以上?

周末,在 stackoverflow 上面发现一个有趣的问题:Why is it faster to process a sorted array than an unsorted array? 提问者用256的模数随机填充一个固定大小的大数组,然后对数组的一半元素求和,并分别用 C++ 和 Java 代码来证实了这一现象,本文主要用 J……

如何对1千万个整数进行快速排序

前言输入:一个最多包含n个正整数的文件,每个数都小于n,其中n=10^7。如果在输入文件中有任何正数重复出现就是致命错误。没有其他数据与该正数相关联。输出:按升序排列的输入整数的列表。约束:最多有(大约)1MB的内存空间可用,有充足的磁盘存储空间可用。运行时间最多几分钟,运行时间为10秒就不需要进一步优化。这是《编程珠玑》中很有意思的一个问题。今天给……

一致性哈希算法在分布式场景中的应用

本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。分布式缓存假设我们有一个网站,最近发现随着流量增加,服务……

这个开源项目有意思,用动画教你学算法

对于初学者来说,通过静态和文本学习算法是非常枯燥的,如今已经有很多很好的网站,可以查看各种算法的动画,没有什么能比代码可视化学习更容易理解的了今天,猿妹再和大家推荐一个直观的算法可视化工具——Algorithm Visualizer,你可以自由选择自己想学习的算法,每个算法它都清晰描绘了其原理和运作过程目前,Algorithm Visualizer ……

算法(五)查找

符号表是一种存储键值对的数据结构,主要支持两种操作:插入一个新的键值对、根据给定键得到值。符号表分为有序和无序两种,有序符号表主要指支持 min()、max() 等根据键的大小关系来实现的操作。有序符号表的键需要实现 Comparable 接口。二分查找实现有序符号表使用一对平行数组,一个存储键一个存储值。rank() 方法至关重要,当键在表中时,……

算法(四)排序

待排序的元素需要实现 Java 的 Comparable 接口,该接口有 compareTo() 方法,可以用它来判断两个元素的大小关系。研究排序算法的成本模型时,计算的是比较和交换的次数。使用辅助函数 less() 和 exch() 来进行比较和交换的操作,使得代码的可读性和可移植性更好。private boolean less(Comparable……

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00