摘要:
题目:在一个m*n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格,直到到达棋盘的右下角。给定一个棋盘及其上面的礼物,请计算你最多能拿到多少价值的礼物? 注:使用动态规划的思想,状态方程为:f(i,j)=max(f 阅读全文
摘要:
题目:给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成“a”,1翻译成“b”,...,25翻译成“z”。一个数字可能有多个翻译。请实现一个函数,计算一个数字有多少种不同的翻译方法。 注:使用动态规划的思想。f[i]=f[i+1]+g[i,i+1]f[i+2],g[i,i+1]为第i,i+1位 阅读全文
摘要:
git 维护的三棵"树":第一个是你的 工作目录,它持有实际文件;第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指向你最后一次提交的结果。 阅读全文
摘要:
一、散列 散列方法的主要思想是根据结点的关键码值来确定其存储地址:以关键码值K为自变量,通过一定的函数关系h(K)(称为散列函数),计算出对应的函数值来,把这个值解释为结点的存储地址,将结点存入到此存储单元中。检索时,用同样的方法计算地址,然后到相应的单元里去取要找的结点。通过散列方法可以对结点进行 阅读全文
摘要:
一、Flask运行过程 1、当客户端想要获取资源时,一般会通过浏览器发起HTTP请求 2、此时,Web服务器会把来自客户端的所有请求都交给Flask程序实例 3、程序实例使用Werkzeug来做路由分发 4、根据每个URL请求,找到具体的视图函数并进行调用 5、Flask调用视图后,可以返回两种内容 阅读全文
摘要:
题目:给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。例如,输入: "25525511135",输出: ["255.255.11.135", "255.255.111.35"] 注:采用深度遍历的思想,递归终止条件为传入的字符串为空且临时存放分隔的IP的path只有4个元素。 阅读全文
摘要:
一、Hive中追加导入数据的4种方式是什么 将 text.txt 文件放入 hive 中 test 表‘2016-10-10’ 分区的语句,test 的分区字段是 l_date 二、Hive导出数据 1、用insert overwrite导出方式 导出到本地: 导出到HDFS 2、Bash shel 阅读全文
摘要:
一、Kafka概念 Apache Kafka是由Apache开发的一种发布订阅消息系统,它是一个分布式的、分区的和重复的日志服务。 传统的消息传递方法: 排队:在队列中,一组用户可以从服务器中读取消息,每条消息都发送给其中一个人。 发布-订阅:在这个模型中,消息被广播给所有的用户 kafka的优势: 阅读全文
摘要:
题目:给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。 注: 此种硬币兑换问题,coins循环在外,由于硬币无数多个。 阅读全文
摘要:
题目:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 注: 背包问题,先计算子问题每个重量最小硬币数。dp存储重量为索引的最小硬币数。dp[i] = min(dp[i],dp[i-c 阅读全文
摘要:
一、Hadoop架构 Hadoop1.0版本两个核心:HDFS+MapReduce Hadoop2.0版本,引入了Yarn。核心:HDFS+Yarn+Mapreduce Yarn是资源调度框架。能够细粒度的管理和调度任务。此外,还能够支持其他的计算框架,比如spark等。 二、HDFS NameNo 阅读全文
摘要:
一、JVM生命周期 JVM伴随Java程序的开始而开始,程序的结束而停止。一个Java程序会开启一个JVM进程,一台计算机上可以运行多个程序,也就可以运行多个JVM进程。 JVM将线程分为两种:守护线程和普通线程。守护线程是JVM自己使用的线程,比如垃圾回收(GC)。普通线程一般是Java程序的线程 阅读全文
摘要:
一、GC (Garbage Collection) 垃圾回收机制是由垃圾回收器Garbage Collection来实现的。GC是后台的守护进程,它的特别之处是它是一个低优先级进程。但是可以根据内存的使用情况动态的调整他的优先级,因此,它是内存中低到一定程度时,才会自动运行,从而实现对内存的回收,这 阅读全文
摘要:
一、Spark运行流程 1、Driver 端提交任务,向Master 申请资源2、Master 与Work 进行RPC 通信,让Work启动Executor3、Executor 启动会主动连接Drive ,通过Drive->Master->Work-Executor 从而得到Driver 在哪里4、 阅读全文
摘要:
‘+’连接字符串性能要低于.join。 字符串是不可变对象。+连接字符串的时候,每执行一次都会申请一块新的内存,然后复制上一个+操作的结果和本次操作的右操作符到这块内存空间,因此用+连接字符串的时候会涉及好几次内存申请和复制。 而join在连接字符串的时候,会先计算需要多大的内存存放结果,然后一次性 阅读全文
摘要:
题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 注: 主要思想是中心扩展法。回文子串有可能是奇数个,有可能是偶数个,所以中心扩展要分一个字符和二个字符两种情况进行扩展。 阅读全文
摘要:
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印拼接出所有数字汇总最小的一个。 注: 主要思路是构造一个自定义排序规则,使用快速排序的思想,进行自定义排序。比较两个字符串大小规则是两者前后拼接两种情况,拼接后小的字符串,排在前面的比后面的小。 阅读全文
摘要:
题目:数字以0123456789101112...的格式序列化到一个字符序列中。在这个序列中,第五位是5,第13位是1,第19位是4。求任意第n位对应的数字。 注: 先判断n属于几位整数(1位,2位,3位。。。1位10个,2位90个,3位900个。。。),然后求出n所在哪一个整数,以及属于该整数的第 阅读全文
摘要:
题目:输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。 阅读全文
摘要:
题目:输入一个整数数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。 分析:使用动态规范的方法做,状态方程为: 阅读全文
摘要:
一、XSS(跨站脚本攻击) 攻击者在 Web 页面中插入恶意脚本,当用户浏览页面时,促使脚本执行,从而达到攻击目的 解决方式: 1、从客户端和服务器端双重验证所有的输入数据,这一般能阻挡大部分注入的脚本 2、对所有的数据进行适当的编码 3、设置 HTTP Header: "X-XSS-Protect 阅读全文
摘要:
一、使用索引的目的 目的:加快数据库的查询速度 二、建立索引的优缺点 优点: 1、大大加快数据的检索速度 2、创建唯一性索引,保证数据库表中每一行数据的唯一性 3、加速表和表之间的连接 4、在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间 缺点: 1、索引需要占用数据表以外的物 阅读全文
摘要:
题目:输入一个字符串,键盘按键Caps Lock可以切换大小写模式,在大写模式下,若想输入小写字母,可以shift+字母,同样在小写模式下,若想输入大写字母可以shift+字母,给定一个字符串求最小的点按键击次数。注意:shift+字母算两次按键点击,默认初始状态是小写模式。 注: 使用flag作为 阅读全文
摘要:
题目:给定一个数组和一个k,将数组中某数的个数大于k的删除,其他数不变 注: 这个是编程题第一个,属于简单题。首先用字典统计每个数的个数,然后遍历原数组,将个数小于k的保存在预先的列表里。 阅读全文
摘要:
物理层:比特 数据链路层:帧 网络层:数据报 运输层:报文段/用户数据报 应用层:报文 阅读全文
摘要:
题目:学生按身高排一排,相邻若干人为一组,只调整每组内的排序,使总体有序,求最大的分组数 举例:[1,3,2,8,5,6,4,10,7,12,13] 输出:5 注: 当时笔试的时候没考虑全面,提交结果只通过了27%,主要在于没考虑到例中‘7’的情况。主要思路是,如果后面的数比前面的数大,说明前面部分 阅读全文
摘要:
题目:设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 注: 使用字典加一个缓存容量来实现。取值时,先判断缓存中有没有该值,若没有直接返回-1;若有,返回,此时需要更新该值的位置为最新,巧妙的方式是先弹出该值,再读入该值。 存值时先判 阅读全文
摘要:
题目:求一个无序数组中,最长上升子序列。子序列不一定是连续的。 注: 使用动态规划的思想,状态方程为:dp[i] = max(dp[j]+1,dp[i])。即当前最长子序列为遍历之前所有元素,比当前元素小的元素的最长子序列的最大值加1。时间复杂度为O(nlog(n))。 阅读全文
摘要:
注: 数组中有正数、负数、零。用两个列表,一个存储最大的Top3元素,一个存储最小的Top2元素。乘积最大的情况有两种:一个是三个最大的整数乘积,一个是最大的正数和最小两个负数的乘积。 阅读全文
摘要:
题目:输入一个字符串,打印出该字符串中字符的所有排列。 注: 使用递归来做,递归终止的条件:索引值为字符串的最后一位。依次将后面字符与当前字符交换后,递归后面一位字符,直到最后一位。注意每交换一次字符递归一次后,要讲字符再交换一次,恢复原位置,防止遗漏。 阅读全文
摘要:
题目:请实现一个函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个m_pNext指针指向下一个节点,还有一个m_pSibling指针指向链表中的任意节点或者nullptr。 注: 第一种方法:暴力复制。先根据链表中m_pNext,复制完整条链表。然后遍历原链表每个节点m_pSibling,由于 阅读全文
摘要:
题目:实现一个字典树 注: 使用字典结构来存储,每层都是一个字典,存储此层所有的元素(包括字典)。每个元素存储方式也为一个字典,key为字符和一个标记end_of_word,表示该字符是否为一个单词的结束。插入操作时,遍历要插入词的每个字符,如果在字典树中找不到,则将该字符插入字典树,默认值为{}, 阅读全文
摘要:
题目:求整数n的平方根 注: 方法加了改进,参数增加了精确度。本题还有个小技巧,为了防止可能输入的整数过大的问题,在判读mid*mid与n的大小时,使用mid与n/mid进行判断。 阅读全文
摘要:
题目:输入括号对数n,返回合法的括号形式 注: 使用递归来做,用left,right分别表示左右括号的使用数量。当两者使用数量为n时,表示已经找出一种情况。如果left小于n,则可以继续加入'(';右括号的情况不仅要小于n,还需要保证right<left,才能保证最终括号的合法性。 阅读全文
摘要:
平衡二叉树(AVL树) 平衡二叉树具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 作用:当原序列有序时,提高搜索效率。 平衡因子:平衡二叉树中不存在平衡因子大于 1 的节点。在一棵平衡二叉树中,节点的平衡因子只能取 0 、1 或者 -1。 阅读全文
摘要:
主要实现批量文本中相关信息的提取。涉及手机号,姓名,相关日期,金额。 1、本项目是作为一个服务接口,使用Python开发,对方采用Java从MySQL数据库中读取批量文本信息,然后调用本接口服务,解析出相关的字段信息。跨语言平台间数据交互采用HTTP的方式。 服务端采用Flask框架,对方先将文本信 阅读全文
摘要:
系统实现的功能:在线提取文本的关键词、短语、摘要、计算文本间的相似度 总结: 1、中文关键词、摘要的提取使用textrank4zh库中的TextRank4Keyword、TextRank4Sentence;英文使用NLTK 2、计算文本相似度,采用同义词词林和词向量结合使用。 3、关键词、摘要、相似 阅读全文
摘要:
1、爬虫框架Scrapy比较好用,默认多线程,各模块分离。还可以用Requests+BeautifulSoup进行爬取。 2、反爬问题。添加header列表,IP地址池,每次爬取暂停一段时间。 3、Scrapy解析网页Xpath,比BeautifulSoup易读性强。 线程数量设置规则: 1. CP 阅读全文
摘要:
题目:求一个二叉树的最大深度和最小深度 注: 采用分治法,最大深度即为左右子树的最大深度+1;最小深度即为左右子树的最小深度+1。最小深度的时候还要注意,如果节点只有左子树或右子树,需要返回另一半子树的深度+1,这是比求最大深度要增加的部分,否则就会将该节点的深度求为1。 阅读全文