自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 资源 (4)
  • 收藏
  • 关注

原创 代码遍历-深度搜索某一关键词

【代码】代码遍历-深度搜索某一关键词。

2022-09-21 23:06:26 293 1

原创 flink--事件时间的重要

时间在流式数据处理理论中,经常使用事件或记录表示从所处理的数据集中拉取的数据,在 Flink中通常以有结构的对象表示事件。在无界数据处理中,主要有两类事件概念。(1)事件时间( Event Time):事件实际发生的时间。(2)处理时间( Processing Time):事件被处理的时间。并不是所有应用场景都关注事件时间,但其重要性是不言而喻的。例如,在用户行为特征分析、异常检测、基于信贷历史的风控型等分析中,事件时间起 到了决定性的作用。用户行为特征分析用户浏览网页或App时会产生一系

2021-11-03 09:26:55 305

原创 除了distinct外如何使用SQL 对数据去重

1.利用distinct去重只能过滤查询字段中所有记录相同的(记录集相同),而如果要指定一个字段却没有效果,另外distinct关键字会排序,效率很低 。select distinct name from student where score > 60 ;我们看到只能取select中所有结果的distinct去重2.我们利用group by 对某一个字段去重,但是其他字段还能取一些聚合的结果group by 的特点是对分组后的每一组结果集产生一条聚合结果(也就是按照某个字段进行分组聚合就相

2021-10-31 11:47:44 1161

原创 Uninon 跟uninon all 的区别

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNIONUnion All:对两个结果集进行并集操作,包括重复行,不进行排序;如果返回的两个结果集

2021-10-31 11:37:33 1073

原创 kafka消息的可靠性怎么保证?

Kafka架构设计:一个topic分多个partition,多个partition可能存在于多个broker(计算机节点上),每个partition又分主从(leader+follower)(1)对于生产者丢失数据:(1)配置多个副本,保证数据的完整性。leader 接收到消息,所有的 follower 都同步到了消息之后,才认为本次写成功了。如果没满足这个条件,生产者会自动不断的重试,所以在生产者方面消息可靠性较高,通过follower的消息一致性保证了写入成功性。通过 replica机制保证数

2021-10-31 11:21:28 1208

原创 最小的K个元素

java中的优先队列会按照我们给的排序规则(默认升序排列)进行排序,自动比较元素大小,保持队列中的元素有序class Solution { //使用优先队列 只存储k个元素 后随添加元素 随保持队列中元素的个数 public int[] smallestK(int[] array, int k) { PriorityQueue<Integer> priorityQueue = new PriorityQueue<>( .

2021-10-25 23:20:14 68

原创 验证回文链表

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public boolean isPalindrome(ListNode head) { //方法一: 借助数组 空间复杂度O(n) 时间复杂度O(.

2021-10-24 10:42:40 1651

原创 交换两个数字

class Solution { public int[] swapNumbers(int[] numbers) { numbers[0] = numbers[0]+numbers[1]; numbers[1] = numbers[0] - numbers[1]; numbers[0] = numbers[0 ] - numbers[1]; return numbers; }}

2021-10-24 10:17:30 85

原创 单词频率(map)

class WordsFrequency { private Map<String , Integer> map = new HashMap<>(); public WordsFrequency(String[] book) { for(String word : book){ if(map.containsKey(word)){ map.put(word, map.get(word)+1);.

2021-10-24 10:07:44 88

原创 将有序数组转换为二叉搜索树

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { .

2021-10-24 09:32:39 63

原创 环路链表的节点

/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode detectCycle(ListNode hea.

2021-10-20 20:55:38 70

原创 两相交链表

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode getIntersectionNo.

2021-10-20 20:44:23 101

原创 链表求和(面试)

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { /** /思路:.

2021-10-18 22:40:20 87

原创 分割链表(面试)

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode partition(ListNode head, int x) { //思路准备分区链表 ListN.

2021-10-17 10:33:28 73

原创 删除中间节点

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { //仅知道当前需要删除的节点 // 则将next节点替换当前的节点就好 public void deleteNode(ListNode node) .

2021-10-17 09:55:33 143

原创 一次编辑字符串

class Solution { public boolean oneEditAway(String str1, String str2) { //长度相同 则只能通过替换一个 //长度不同只能插入或者删除1个字符 //两个字符串长度不能差多余2 否则肯定不能通过一次替换 if (Math.abs(str1.length() - str2.length()) >= 2) { return false;.

2021-09-21 10:51:38 123

原创 剑指 Offer 32 - II. 从上到下打印二叉树 II

剑指 Offer 32 - II. 从上到下打印二叉树 II思路如下:从上到下打印二叉树层次遍历即可:层次遍历使用的集合框架为队列,队列可以先进先出,可以很好的帮助我们进行存储节点和随时出队列供我们使用/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(i.

2021-09-16 20:17:11 73

原创 剑指offer--二叉树中和为某一值的路径

思路:深度优先遍历注意还原现场从根结点到叶子结点 遍历一遍 结果正确添加到最终集合class Solution { List<List<Integer>> listAll = new ArrayList<>(); Deque<Integer> queue = new LinkedList<>(); public List<List<Integer>> pathSum(TreeNode roo.

2021-08-10 08:35:49 101

原创 MT内推(come on)

![graph TD;A-->B;B-->C;](https://img-blog.csdnimg.cn/20210805200402936.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTgxMTU4,size_16,color_FFFFFF,t_70)

2021-08-05 20:04:14 112

原创 剑指offer-- 数组中数字出现的次数

思路:统计数组中每个元素的出现的频次最终遍历得到频次为1 的元素返回这个方法过于笨拙,正在思考较为好的方法。。。class Solution { public int singleNumber(int[] nums) { Map<Integer , Integer> map = new HashMap<>(); for(Integer num : nums){ if(map.containsKey(num)){.

2021-08-05 17:24:46 46

原创 剑指offer--二进制中1的个数

思路:我们使用转换函数将整数转为二进制字符串表示但是注意我们转换函数的使用,其中Integer自带的进制转换函数有很多的,其中包含很多的对于负数无法使用的函数,转换的时候会因为高位为1 或者没有取反而导致1 的个数的错误(负数的进制转换需要注意高位 和 取反的事情,如果不了解建议看一下反码补码的概念)Integer.toBinaryString()函数会考虑负数的问题但是String str = Integer.toString(n,2);就会有报错的情况(可以自行尝试一下,看一下原因,欢迎解答.

2021-08-05 16:29:10 65

原创 剑指 Offer--调整数组顺序使奇数位于偶数前面

思路:双指针遍历扫描class Solution { public int[] exchange(int[] nums) { //双指针算法 for(int i = 0 , j = nums.length-1; i<j ; i++ , j--){ while(i < j && nums[i] % 2 != 0 )i++; while(i < j && nums[j.

2021-08-05 16:09:50 38

原创 剑指offer--和为target的两个数的和

思路:从头到尾进行遍历,查找两个数字的和是否为targetleft为我们左边的值right为待求的和为target的值因为是有序的数组 ,所以可以二分查找 进行时间复杂度的优化class Solution { public int[] twoSum(int[] nums, int target) { //思路 遍历nums数组 ,从小到大寻找 target-nums[i]的值看看是否存在 //而target-nums[i]的值 可以通过二分查找的方法进行.

2021-08-05 15:50:48 102

原创 剑指offer--对称二叉树

思路:根据左子树和右子树的特点进行递归遍历注意 ;树的问题大多可以考虑递归遍历class Solution { public boolean isSymmetric(TreeNode root) { //递归 if(root == null) return true; if(symmetric(root.left,root.right)) return true; return false; } public .

2021-08-04 08:24:22 55

原创 剑指offer-二叉树的镜像

思路:镜像二叉树根结点的左右子树交换 后递归的进行交换每个子树上的左右节点class Solution { public TreeNode mirrorTree(TreeNode root) { //递归 if(root == null) return root ; TreeNode temp = root.left; root.left = root.right; root.right = temp; .

2021-08-04 08:14:52 46

原创 树的子结构

class Solution { public boolean isSubStructure(TreeNode A, TreeNode B) { if(A == null || B == null ) return false; if(A != null && B != null && recurse(A , B) || isSubStructure(A.left ,B ) || isSubStructure(A.right , B).

2021-08-04 08:09:16 54

原创 剑指offer--剪绳子2

注意int表示范围有限所以用bigInteger的大数对象来表示大数 防止int表示越界问题import java.math.BigInteger;class Solution { public int cuttingRope(int n) { BigInteger[] dp = new BigInteger[n + 1]; Arrays.fill(dp, BigInteger.valueOf(1)); // dp[1] = BigInteg.

2021-08-04 07:26:50 63

原创 剑指offer-剪绳子

思路:动态规划考虑最后一步,最后一步的时候 剪绳子可以从1–n-1 中间随便剪一刀到 j分为两段 j. 和 i-j 这两段中剩下的i-j可以剪 也可以不剪则在j*(i-j)和 j*dp[i-j]中取最大class Solution { public int cuttingRope(int n) { //解题思路:最后一段的绳子 可以如何取 //设绳子总长度为 i //当最后一段的绳子取j为前一段 剩下的 i- j 长度 可以剪 可以.

2021-08-04 07:13:00 122

原创 剑指offer--矩阵中的路径(dfs+ 回溯)

思路如下:首先我们会遍历board数组中的每个元素作为开始出发点进行深度优先遍历的起始点辅助数组pass代表我们当前的元素是否遍历过的标记如果当前的元素的值和字符串对应元素的值相等的时候我们就向其所在位置的上下左右四个方向中没有遍历过的元素进行试探重点是便利完后要注意回复现场以便进行下一次的遍历时不受影响class Solution { public boolean exist(char[][] board, String word) { //深度优先遍历 + 剪枝 .

2021-08-02 21:32:25 58

原创 剑指offer--斐波那契数列 && 青蛙跳台阶

class Solution { public int fib(int n) { int f[] = new int[n+1]; for(int i = 0 ; i<= n ; i++){ if(i==0) f[i] = 0 ; else if(i == 1 || i==2 ) f[i] = 1 ; else f[i] = (f[i-1] + f[i-2]) %1000000007; .

2021-08-01 10:43:24 56

原创 (面试排序算法模板)冒泡,选择,插入,快排,归并

冒泡,选择,插入,快排,归并public class Sort { public static void main(String[] args) { int[] arr = {3,2,5,1,5,7,4,3,9}; mergeSort(arr,0 , arr.length-1); for(int i = 0 ; i < arr.length ; i++){ System.out.print(arr[i]+ " ");

2021-06-06 17:36:15 68

原创 Hadoop错误解决(一)Could not find or load main class

Error: Could not find or load main class.org.apache.hadoop.mapreduce.v2.app.MRAppMaste解决方法:yarn-site.xml中加入以下代码<property> <name>yarn.application.classpath</name>

2021-06-01 08:52:33 2783

原创 插入后的最大值

力扣 243场竞赛–第二题class Solution { public String maxValue(String str, int target) { /** 思路: 从前向后遍历 如果是正数>0 ,那我们插入的位置应该是第一个 <x的位置 所以我们寻找第一个比x小的元素,在它前面插入 如果是负数<0 ,那我么插入的位置应该是第一个 >x的前面的位置 所以我们寻找第一个比大于的元

2021-05-31 09:02:45 138

原创 检查某单词是否等于两单词之和

leetcode周赛 243–第一题class Solution { public boolean isSumEqual(String firstWord, String secondWord, String targetWord) { String first= ""; String second = ""; String target = ""; for(int i = 0 ; i < firstWord.length()

2021-05-31 08:33:24 86

原创 旋转排序数组的最小元素

思路:二分查找,查找数组元素值 <= 旋转数组中最后一个元素的组左边的为止的数,就是最小的元素class Solution { public int findMin(int[] nums) { int l = 0 ; int r = nums.length -1; int target = nums[r]; while(l < r){ int mid = l+r >>1; i.

2021-05-30 16:16:29 71

原创 在排序数组中查找元素的第一个和最后一个位置

class Solution { public int[] searchRange(int[] nums, int target) { /** 思路: 查找第一次 >= target的为止 查找最后一次<=target的为止 */ if(nums.length ==0 ) return new int[]{-1,-1}; int l = 0 ; int r =.

2021-05-30 15:28:00 100

原创 快排模板(Java实现)

面试可愿意考这玩意了!!!快排思想:先找一个中间的标靶,然后遍历数组将>标靶的元素放到标靶右边将< 标靶的元素放到标靶左边然后递归的排序左右两边 public static void quick_sort(int[] nums ,int left ,int end){ if(left >= end) return; int pivot = nums[left+end >>1]; int i = left -1;

2021-05-29 22:21:43 132

原创 归并排序(Java实现)

强烈推荐归并排序讲解视频(新手非常友好的讲解)首先我么们明确归并排序的主要思想:第一:分治法 进行数组的局部排序第二: 合并两个有序的数组public class MergeSort { public static void main(String[] args) { int[] nums = {1,2,4,3,6,5,9,0,7,7}; mergeSort(nums,0,nums.length-1); for (int i = 0; i &.

2021-05-29 22:05:05 61

原创 准备面试的两个小练习SQL

1.第一题 select Salary as SecondHighestSalary from Employee order by Salary DESC limit 1 offset 1 ;select ifnull( (select distinct Salary from Employee order by Salary desc limit N-1,1),null) as NthHighestSalayLIMIT 子句可以被用于强制 SELECT 语

2021-05-29 18:59:56 69

原创 leetcode周赛225 --得到匹配的时间

class Solution { public boolean check(String str , String time){ for(int i = 0 ; i < time.length(); i++){ if( !(str.charAt(i) == time.charAt(i)|| time.charAt(i)=='?')) return false; } return true; } p.

2021-05-29 11:23:56 62

redis基本学习.pdf(无需积分)

redis 学习笔记

2021-04-12

空空如也

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

TA关注的人

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