自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Fsm serialdata

Fsm serialdata

2022-08-25 11:59:09 127 1

原创 7:数组:数组最大连续子序列的和

思路:1.先判断边界条件 num==null || num.length==02.连续变量最大和maxsum;中间变量的最大和tempsum3.遍历数组中所有元素,如果tempsum<=0;让tempsum=0;然后加后面的元素;如果tempsum==0;tempsum就清0;值等于下一个元素;先清0再赋值maxsum=max(maxsum,tempsum);注意:ma...

2019-07-26 11:09:50 185

原创 6:数组:找到数组元素的最小的k个值

思路:采用快速排序。然后求出前k个元素;时间o(nlogn)public class Solution { public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) { ArrayList<Integer> res=new ArrayLi...

2019-07-26 11:08:55 163

原创 5:数组:数组中有一个数字出现的次数超过数组长度的一半-Java

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路:hashmap保存元素以及出现的次数;遍历map找到出现次数超过一半的元素;时间o(n) 空间 o(n)public int MoreThanHalfNum_So...

2019-07-26 11:07:18 369

原创 4:数组:顺时针打印数组

思路:首先判断循环退出的条件: 5x5 矩阵 [2][2] 6*6 [2][2] 只要col> 2*k && row> 2*k[K][K]最后一次打印的起始位置然后循环打印数组:上面一行:没有限制条件右面一列:只有中止行数>起始行数下面一行:中止行数>起始行数 && 中止列数>起始列数 至少两行两列...

2019-07-26 10:09:11 116

原创 3:数组:调整数组顺序使奇数位于偶数前面

https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593?tpId=13&tqId=11166&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking输入一个整数数组,...

2019-07-25 21:00:27 192

原创 2:数组:旋转数组的最小的元素

https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba?tpId=13&tqId=11159&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking...

2019-07-25 20:58:04 76

原创 1.数组:二维数组的查找

https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&tqId=11154&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking在一个二维数组中(...

2019-07-25 20:56:03 82

原创 排序算法总结

排序算法的思想什么是排序算法的稳定性? 指两个相同的元素,在多次排序过程中,排序先后的相对位置是否会发生变化。主要用在排序时有多个排序规则的情况。【一般情况下认为,如果两个元素进行相邻的交换,可以认为该算法是稳定的】1.选择排序思想:nums[i],遍历数组,第一次从数组中找到最小的元素,与数组第一个元素进行交换;第二次遍历数组查找第二小元素,与数组第二个元素进行交换;...

2019-07-25 20:44:49 94

原创 数学

 链接:https://ac.nowcoder.com/acm/contest/330/J来源:牛客网仅一行三个整数 f1,f2,af1,f2,a,分别表示两只手产生的力的大小以及它们之间的夹角。import java.util.Scanner;public class Main{ public static void main(String[] args){ ...

2019-01-30 12:33:30 88

原创 数学

1.3的幂class Solution { public boolean isPowerOfThree(int n) { if(n&lt;1) return false; if(n==1) return true; int base=3; while(n&gt;1){ if(n%base!=0){...

2019-01-22 11:12:47 81

原创 数学之中位数、众数\平方数

 中位数问题:class Solution { public int minMoves2(int[] nums) { // /*第一种解法:以每一个元素为目标对象,求出其他的元素距离目标对象的差之和,满足差值和最小的就是移动的最小数 // 时间复杂度o(n^2)**/ // int min=Integer.MAX_VALUE; // ...

2019-01-21 10:36:31 193

原创 字符串相加

1.阶乘尾部0的个数: class Solution { public int trailingZeroes(int n) { /*2*5=10 有一个0 因此判断n中包含的5及其倍数的个数 n/5+n/5^2+n/5^3+.... n/5表示不大于n的数中贡献一个 n/5^2不大于n的数中5^2贡献一个。。。*/ ...

2019-01-20 11:23:39 337

原创 进制转换

10进制转换成7进制、16进制、26进制都是num%x 余数表示转换以后的进制数;num更新成num/x10进制转换成16进制有补码,难点1.26进制class Solution { public String convertToTitle(int n) { StringBuilder sb=new StringBuilder(); whi...

2019-01-19 11:09:28 132

原创 最短单词路径

 最短单词路径给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord到 endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 be...

2018-12-06 12:19:14 409 1

原创 分治

 分治算法:运用分治策略解决的问题一般来说具有以下特点:1、原问题可以分解为多个子问题这些子问题与原问题相比,只是问题的规模有所降低,其结构和求解方法与原问题相同或相似。2、原问题在分解过程中,递归地求解子问题由于递归都必须有一个终止条件,因此,当分解后的子问题规模足够小时,应能够直接求解。3、在求解并得到各个子问题的解后应能够采用某种方式、方法合并或构造出原问题的解。...

2018-11-29 10:26:33 201

原创 hash用法

 HashMap:空间换时间,key-valueclass Solution { public boolean containsDuplicate(int[] nums) { /* 遍历数组,利用hashset key--nums.value value--nums.index 如果map.value!-...

2018-11-27 10:36:35 1493

原创 二分查找

二分法难点:数据索引的更新/* The isBadVersion API is defined in the parent class VersionControl. boolean isBadVersion(int version); */public class Solution extends VersionControl { public int firstB...

2018-11-21 15:42:23 116

原创 二分查找

 针对排序的数组或者数字,折半查找,时间复杂度O(ologn)计算中值:mid=L+(H-L)/2class Solution { public int mySqrt(int x) { if(x&lt;=1){ return x; } int l=1; int h=x; ...

2018-11-20 12:07:43 122

原创 贪心思想,非递减数列

 输入: [4,2,3]输出: True解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。class Solution { public boolean checkPossibility(int[] a) { /* 定义常量来计算交换的次数 如果出现a[i]&gt;a[i+1];应该让a[i]=a[i+1],变小,...

2018-11-16 11:45:39 119

原创 贪心思想:种花

Input: flowerbed = [1,0,0,0,1], n = 1 Output: True应用指针的思想,注意判断边界的条件class Solution { public boolean canPlaceFlowers(int[] flowerbed, int n) { /* 利用三个指针:当前节点,前一个节点,后一个节点, ...

2018-11-15 10:39:18 108

原创 贪心思想之字符串切分

 先从第一个字符开始,找到最后一次该字符出现的位置,然后判断包含在这个范围之内的字符是否满足最后一次出现的位置&lt;=lastIndex,不满足要进行重新更新lastindex;直到所有的字符都在lastindex范围之内class Solution { public List&lt;Integer&gt; partitionLabels(String S) { /...

2018-11-08 10:41:05 111

原创 贪心思想

贪心思想:第一个坐标的尾节点应该尽量与第二个坐标的区间重叠;不重叠要重新更新end坐标 class Solution { public int findMinArrowShots(int[][] points) { /*利用贪婪思想,首先,当气球个数不为一的时候,先射一箭,cnt=1; 接着,这一箭应该射到当前坐标的尽头,才能保证有可能射到后面气球的概率大,如...

2018-11-07 10:16:38 94

原创 贪心思想

先满足局部最优,最后导致全局最优class Solution { public int findContentChildren(int[] g, int[] s) { /*采用贪心的思想 首先满足胃口最小的孩子的最小尺寸m的饼干;这样后面就有尺寸大的饼干能满足更多的孩子 假设有最右策略,分配给它尺寸n的饼干,n&gt;m;根据贪心策略,...

2018-11-05 21:11:30 94

原创 数组中元素与下一个比它大的元素之间的距离

栈/*用辅助数组存储差值;用栈存储数组元素,如果遇到后面的元素大于前一个元素,就弹出栈中的元素*/也就是说,利用栈;先判断相邻的两个数组的大小;如果后一个元素大于前一个元素preIndex,就让辅助数组中Preindex的值为1;如果当前元素不大于前一个元素;就移动数组;判断当前元素与他的后一个元素大小;满足条件,就判断next和pre的大小,依次进行peek()表示栈顶元素pop()...

2018-11-04 10:51:21 803

原创 用栈判断是否对称的字符串

 先进入字符串括号的前半部分,然后依次弹出前半部分的元素,看与后半部分的元素是否对称,可以用于判断是否是偶数对称回文class Solution { public boolean isValid(String s) { /*对以一个字符串,采用栈的思想 如果是以(、{、[、开始的,则先存入栈中;在匹配是否有对称的 如果不是这几个字符串,...

2018-11-03 11:07:23 2657

原创 栈的最小元素

构建一个栈,使其有查找最小元素的功能数据栈+辅助栈class MinStack { /** initialize your data structure here. */ private Stack&lt;Integer&gt; dataStack; private Stack&lt;Integer&gt; minStack; private int m...

2018-11-03 10:32:16 162

原创 队列实现一个栈

当插入一个元素时,要实现后进元素先出,需要把该元素之前的元素先出队列,重新进入队列的尾部。此时就实现了后进先出队列插入class MyStack { Queue&lt;Integer&gt; queue; /** Initialize your data structure here. */ public MyStack() { queue=ne...

2018-11-02 11:24:03 107

原创 两个栈实现一队列:

两个栈实现一队列:要加入辅助栈,进行反转操作栈的顺序为后进先出,而队列的顺序为先进先出。使用两个栈实现队列,一个元素需要经过两个栈才能出队列,在经过第一个栈时元素顺序被反转,经过第二个栈时再次被反转,此时就是先进先出顺序。class MyQueue { Stack&lt;Integer&gt; in=new Stack&lt;&gt;(); Stack&lt;Inte...

2018-11-02 11:15:12 81

原创 前缀树的和

 /*新建前缀树*/1.定义数据结构:根节点的26个子节点,可选,用index表示是哪个单词字母2.新建insert;如果根节点为空,直接返回;如果要插入的字符串为空,就将当前树节点的值设置成给定的value(当前字符串为空有两种情况:1.给定的字符串key=null;value=v;2.key="String",Value=num,在构建树,该key字符串构建完毕,则让当前的节点值等于给定的...

2018-11-01 11:23:20 132

原创 前缀树结构

/*实现一个前缀树*/什么是前缀树?优点?缺点?一般用来做什么?数据结构:包括根节点+儿子节点前缀树的性质:1.每一层节点上面的值都不相同;2.根节点不存储值;除根节点外每一个节点都只包含一个字符。3. 如果字符的种数为n,则每个结点的出度为n,这也是空间换时间的体现,浪费了很多的空间。 4. 插入查找的复杂度为O(n),n为字符串长度。典型应用是 1. 用于统计和排...

2018-10-31 10:44:33 404

原创 二叉搜索树的最小节点绝对值之差/在二叉查找树中寻找两个节点,使它们的和为一个给定值/找出 BST 中的所有众数(出现频率最高的元素)。

关于二叉树的数值运算,一般考虑借用中序遍历为数组;再进行计算的思想。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x;...

2018-10-27 10:37:24 542

原创 HDFS基本命令行操作与简单API使用

1.打开集群命令  start-dfs.sh2.查看帮助 hdfs dfs -help3.查看当前目录信息 hdfs dfs -ls /4.从本地上传文件  hdfs dfs -put data.txt  /wc/in5.从hdfs下载文件到本地  hdfs dfs -get /wc/in/word.txt ./6.剪切文件 hdfs dfs -moveFromLocal /d...

2018-10-26 11:26:45 354

原创 在二叉查找树中寻找两个节点,使它们的和为一个给定值

给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。使用中序遍历得到有序数组之后,再利用双指针对数组进行查找。应该注意到,这一题不能用分别在左右子树两部分来处理这种思想,因为两个待求的节点可能分别在左右子树中。/** * Definition for a binary tree node. * public class T...

2018-10-26 10:31:50 522 1

原创 利用有序数组/链表重构二叉搜索平衡树

因为二叉搜索树中序遍历的结果就是一个从小到大排列的数组,因此数组的中间位置的值,就是二叉搜索树的根节点的值;再依次采用递归,分别构建左右子树。 链表和数组的不同在于,数组可以直接索引找到元素,查找方便,链表不能够直接定位到某一个元素;所以要采用链表自己的方法,求中间位置;断开链表;进行迭代链表解法的难点:1.断开链表:采用双指针思路2.查找链表中间节点位置的表达法3.新建树...

2018-10-25 10:07:08 217

原创 二叉树的公共祖先

1.找出给点过的两个节点的二叉查找树的公共祖先思路:如果当前根节点的值大于给定的两个节点,则他们的公共节点在根节点的左子树中寻找;如果当前根节点的值小于给定的两个节点,则他们的公共节点在根节点的右子树中查找;如果根节点在给定的两个节点之前或者等于其中的某一个节点,都表明了根节点是这两个节点的公共祖先。class Solution { public TreeNode low...

2018-10-25 09:47:29 650

原创 二叉查找树

1.左边节点的值总是小于等于根节点,右边节点的值总是大于等于根节点修建二叉树:把二叉树的每个节点的值限制在一个范围&lt;L,R&gt;之间思路:先判断根节点的值;如果根节点的值,大于R,则递归左子树的值,根节点+右子树被全部抛弃;如果根节点的值,小于L,则递归右子树的值,根节点+左子树被全部抛弃;如果根节点位于两个值之间,则开始递归求解左子树/右子树是否满足上述条件。pub...

2018-10-24 10:09:27 59

原创 二叉搜索树第K小元素

1.思路:迭代法计算出二叉树左节点的个数,如果左节点的个数等于k-1;则根节点就是我们要找的值,如果左节点的个数大于k-1,表明我们要查找的第k个最小元素在左子树中,如果左节点的个数小于k-1,表明要查找的第k个最小元素在右子节点中,找到右子树中第k-count(left)-1个元素就是我们要找的元素/** * Definition for a binary tree node. *...

2018-10-24 09:46:20 500

原创 hadoop数据类型

hadoop的序列化在数据传输的过程中,存储在内存中传输的数据,解决数据在传输过程中因网络传输故障出现的断裂现象。把内存当中正在运行的数据对象,转换成字节序列以便于存储和网络传输反序列化:将收到的字节序列或者硬盘的持久化数据,转换成内存中的对象。 java的序列化:Serializablejava的序列化是一个重量级序列化,会附带很多额外的信息,(效验信息,头信息,继承体系...

2018-10-23 18:52:40 441

原创 MapReduce的核心思想编程

案例需求:统计一个文件(存储的都是单词)200m,查询每个单词出现的次数,(a-i开头的放在一个文件)&lt;j-z开头的放在另外一个文件&gt;  datanode200m; datanode默认128m;因此数据分成两快;1.map阶段;调用MapTask任务:第一个datanode数据块:读数据;按行处理;切分;HashMap&lt;单词,value+1&gt;;处理完成后按...

2018-10-23 15:48:09 318

空空如也

空空如也

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

TA关注的人

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