自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 九章系列(2)——二叉树&分治(DFS&BFS)

Outline1.Binary Tree DFS Traversalpreorder / inorder / postorderDivide & ConquerDFS Template2.Binary Tree BFS TraversalBFS template3. Binary Search Treevalidate, insert, deletenote:...

2020-05-05 17:42:48 244

原创 14.最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”思路一:先找到数组中最短元素,最长公共子串不会超过最短元素对第一个元素迭代分割,分割后的子串用于迭代比较是否相同。class Solution { public String longestCommonP...

2019-03-05 18:03:15 148

原创 11. 盛最多水的容器

给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。示例:输入: [1,8,6,2,5,4,8,3,7]输出: 49思路:双指针、动态规划比较左右指...

2019-01-23 17:11:45 132

原创 8. 字符串转换整数 (atoi)

请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽...

2019-01-22 16:15:31 214

原创 6. Z 字形变换

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:st...

2019-01-21 14:09:06 126

原创 7. 整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21解析:反转数字,每次取最低位,上次迭代的值进位加上最低位;以123为例,第一轮,取3,;第二轮取2,310+2=32;第三轮取1,3210+1=321;主要考虑,res*10出现溢出问题...

2019-01-11 16:26:17 115

原创 3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解析:注意查找最长子串,因此需要字符连续。分析直观查找逻辑,以abcabcbb为例,遍历字符串,首先,a字符不重复,此时最长为1,维持字符串‘a’;b字符不重复,此时最长为2,维持字符串‘ab’;c字符...

2019-01-08 18:27:49 133

原创 leetcode刷题指北(2)

9.回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 思路一: 第一反应转为字符串,遍历字符串首尾是否相等。class Solution { public boolean isPalindrome(int x) { String s=x+"&a

2018-12-12 15:02:51 154

原创 leetcode刷题指北(1)

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]暴力法:class Solution { public int[] two...

2018-12-12 15:02:31 114

原创 字符串类编程汇总

除了数组和链表数据结构,字符串也是编程工作面试中的另一热点话题。我参加过的编码面试基本都问过关于字符串的问题。如果你了解数组,那么你就能轻易地解决基于字符串的问题,因为字符串就是字符数组。因此,你通过解决数组编程问题学到的所有技巧,也能用来解决字符串编程问题。1.如何打印字符串中重复的字符?...

2018-12-12 15:02:03 330

原创 链表类编程汇总

链表是补充数组数据结构的另一种常见数据结构。与数组类似,它也是线性数据结构,以线性方式存储元素。然而,与数组不同的是,它不会将元素存储在连续的位置;相反,它会将其分散存储在内存中,彼此通过节点相互连接。链表是节点列表,其中每个节点包含存储的值和下一个节点的地址。由于这种结构,在链表中添加或删除元素变得很简单,因为你只需要改变链接而不是创建数组,但是这样会使搜索变得困难,并且经常需要 O(n) ...

2018-12-12 15:01:50 426

原创 数组类编程汇总

数组是最基本的数据结构,它将元素储存在连续的内存空间中。数组也是面试官最喜欢问的主题之一,在任何编程面试中都能听到非常多关于数组的问题,例如反转数组、排序数组或搜索数组元素等。解决数组问题的关键是对数组数据结构有比较深的理解,同时还需要了解循环、递归和基本运算子等常见的编程结构。1、在一个元素为 1 到 100 的整数数组中,如何搜索缺失元素?思路一:求和用n*(n+1)/2求连续数的和,...

2018-12-12 15:00:45 578

原创 二叉树类问题汇总

树数据结构允许以层级形式存储数据。根据存储数据的方式,有多种树类型,如二叉树。和它的近亲二叉搜索树一样,它也是最流行的树数据结构之一。因此,你会看到很多相关的有趣问题。例如,如何遍历树、计算节点数量、找出深度,以及检查是否平衡。解决二叉树问题的关键在于深厚的理论知识,如二叉树的大小或深度、什么是叶节点、什么是节点,以及了解流行的遍历算法。1.二叉树的遍历树的节点定义/** * Defi...

2018-11-18 12:45:17 338

原创 面试概率题

1.抛硬币直到连续出现两次字为止先来考虑一下抛硬币的过程:首先先抛一枚硬币,如果是花,那么需要重头开始;如果是字,那么再抛一枚硬币,新抛的这枚如果也是字,则游戏结束,如果是花,那么又需要重头开始。根据这个过程,设抛硬币的期望次数为T,可以得到关系T = 1 + 0.5T + 0.5( 1 + 0.5 * 0 + 0.5T)意义为:游戏结束前一定掷过一次硬币,期望1;有0.5的概率掷0,掷0...

2018-11-16 19:29:58 566

原创 动态规划类整理

1.最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。动态规划,状态转移方程:dp[i] = max{A[i], dp[i-1]+A[i]} public static int maxSubA...

2018-11-15 14:26:07 145

原创 排序算法[Java]

1.快速排序原理:通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。利用分治思想平均时间O(nlogn) ,最坏 O(n2) ;对于大的、乱序串列一般认为是最快的已知排序;不稳定;实现:三个whilepublic static int part(int [] arr,int low,int high...

2018-11-12 19:29:01 124

原创 剑指offer[Java]

1.二维数组中查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public static boolean search_mat(int[][] list, int target) { boolean res = false; int col...

2018-10-30 10:44:40 194

原创 Spark编程汇总

1.WordCount样例数据:先用flatMap把所有数据根据“ ”分割单词并合成一个list;map对list中的每个单词组合成(word,1);reduceByKey将所有键值对根据key求value的和,即为每个单词的频数。hello word bala bala val conf = new SparkConf().setAppName("test1")

2018-10-16 17:43:15 170

原创 用户画像、推荐系统杂谈

基于用户和物品的协同过滤区别:计算复杂度  Item CF 和 User CF 是基于协同过滤推荐的两个最基本的算法,User CF 是很早以前就提出来了,Item CF 是从 Amazon 的论文和专利发表之后(2001 年左右)开始流行,大家都觉得 Item CF 从性能和复杂度上比 User CF 更优,其中的一个主要原因就是对于一个在线网站,用户的数量往往大大超过物品的数量,同...

2018-08-08 17:08:14 743

原创 NumPy学习笔记

ndarray 多维数据对象ndarray 是一种快速灵活的大数据集容器。 容器中所以元素必须相同相同类型。创建ndarrayarray函数接收一切序列型的对象(包括其他数组),产生一个新的包含传入数据的数组。 列表转化:这里写代码片多维数组采用嵌套列表实现:这里写代码片zeros和ones分别可以创建指定长度的全0和全1数组,empty可以创建没有具体值的数组...

2018-08-08 15:05:47 113

原创 Pandas学习笔记(入门篇)

翻译 10 Minutes to pandas 原文档:http://pandas.pydata.org/pandas-docs/stable/10min.html#getting 导入模块:In [1]: import pandas as pdIn [2]: import numpy as npIn [3]: import matplotlib.pyplot as plt创建...

2018-08-08 13:55:05 160

原创 spark读书笔记(2)-键值对

键值对RDD 通常用来进行聚合计算。我们一般要先通过一些初始ETL(抽取、转化、装载)操作来将数据转化为键值对形式。1.创建Pair RDDSpark 为包含键值对类型的RDD 提供了一些专有的操作,称之为Pair RDD。它们提供了并行操作各个键或跨节点重新进行数据分组的操作接口。 python使用第一个单词作为键创建出一个pair RDDpairs = lines.map(lam...

2018-08-07 18:02:49 149

原创 spark读书笔记(1)-RDD

spark读书笔记RDD基础RDD支持两种操作,transformation和action。本质区别,转化操作生成新的RDD,行动操作计算结果返回驱动器程序中,或存储到外部存储器。 理解:两种操作的计算方式不同,由于spark是惰性计算,可以任何时刻定义新的RDD但是只有行动操作时才会出发实际计算。pythonLines = lines.filter(lambda line:...

2018-08-07 16:19:48 132

空空如也

空空如也

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

TA关注的人

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