![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 57
long_shu
但行好事,莫问前程
展开
-
java8 stream
stream一、什么是stream流(stream)是支持顺序和并行聚合操作的元素序列。集合(Collection)和流虽然有一些表面上的相似之处,但有着不同的目标。集合(Collection)主要是对元素的有效管理和访问。相比之下,流(Stream)不提供直接访问或操作其元素的方法,而是关注于声明性地描述其源以及将在该源上聚合执行的计算操作。在Java 8中,stream(java.util.stream)专注于对集合(Collection)对象进行各种聚合操作(aggregate operati原创 2020-11-01 21:31:12 · 403 阅读 · 0 评论 -
Java实现微信小程序校验图片是否含有违法违规内容
文章目录1.Java实现微信小程序校验图片是否含有违法违规内容(security.imgSecCheck)2.接口文档简述3.Java实现对接接口4.压缩图片(Thumbnails)5.整合压缩图片和对接代码6.ImageUtils工具类7.结束语1.Java实现微信小程序校验图片是否含有违法违规内容(security.imgSecCheck)做毕设期间,第一次对微信小程序的开发接口进行对接,发现微信的接口文档写的及其简单,导致我找寻许久都没有找到合适的介绍,在此记录自己使用Java在后台对接secur原创 2020-05-27 17:11:27 · 4000 阅读 · 3 评论 -
java实现二叉树遍历
一、递归实现二叉树遍历1)前序遍历:root ,left,right。class Solution { private List<Integer> list = new ArrayList<>(); public List<Integer> preorderTraversal(TreeNode root) { inord...原创 2019-03-07 23:40:20 · 156 阅读 · 0 评论 -
LeetCode 212. 单词搜索II java实现 个人算法之旅
给定一个二维网格board和一个字典中的单词列表words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。示例:输入: words = ["oath","pea","eat","rain"] and board =[ ['...原创 2019-03-11 10:45:04 · 219 阅读 · 0 评论 -
LeetCode 208. 实现 Trie (前缀树)
实现一个 Trie (前缀树),包含insert,search, 和startsWith这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith("app...原创 2019-03-10 12:07:09 · 301 阅读 · 0 评论 -
字典树(Trie)
1、Trie树的数据结构Trie树,即字典树,又称单词查找数或者键数。是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不限于字符串),所有经常被搜索引擎系统用于文本词频统计。优点:最大限度地减少无谓的字符串比较,查询效率高于哈希表。2、Trie数的核心思想Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。3...原创 2019-03-10 11:55:06 · 234 阅读 · 0 评论 -
leetcode 98 验证二叉搜索树 java实现 笔记
题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。方法一: /** * Definition for a binary tree node. * public class TreeNode { * int...原创 2019-03-08 13:06:53 · 248 阅读 · 0 评论 -
插入排序 java
* 插入排序* 通过构建有序序列,对于未排序数据,在已经排序的序列中从后向前扫描,找到相应的位置并插入。* 步骤:* 1, 从第一个元素开始,该元素可以被认为已经被排序* 2, 取出下一个元素,在已经排序的元素中从后向前扫描* 3, 如果该元素(已经排序的)大于新元素,将该元素移至下一个位置* 4, 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置* 5, 将该元素插入到该位...原创 2019-03-31 22:24:10 · 154 阅读 · 0 评论 -
LeetCode 392 判断子序列 java实现 算法之旅
判断是否为子串Leetcode : 392. Is Subsequence (Medium)给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位...原创 2019-04-16 22:42:43 · 498 阅读 · 0 评论 -
LeetCode 406 根据身高和序号重组队列 java实现 算法之旅
根据身高和序号重组队列Leetcode : 406. Queue Reconstruction by Height(Medium)假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1],...原创 2019-04-22 22:49:09 · 1237 阅读 · 0 评论 -
划分字母
划分字母Leetcode : 763. Partition Labels (Medium)题目:字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。示例 1:输入: S = “ababcbacadefegdehijhklij”输出: [9,7,8]解释:划分结果为 “ababcbaca”, ...原创 2019-04-19 17:40:28 · 287 阅读 · 0 评论 -
Leetcode : 24. 两两交换链表中的节点 Java实现 算法之旅
Leetcode : 24. 两两交换链表中的节点(medium)给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例:给定 1->2->3->4, 你应该返回 2->1->4->3.解题思路使用一个前继节点来记录两两交换之后的第二个节点,这样在每次交换之前就可以将...原创 2019-05-05 11:28:19 · 398 阅读 · 0 评论 -
LeetCode 25 k个一组翻转链表 Java实现 算法之旅
k个一组翻转链表Leetcode : 25. k个一组翻转链表[hard]给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4-&...原创 2019-05-05 22:36:19 · 824 阅读 · 0 评论 -
leetcode 20 有效的括号 Java实现 算法之旅
leetcode 20. 有效的括号.easy](https://leetcode-cn.com/problems/valid-parentheses/)给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入:...原创 2019-05-07 20:37:53 · 365 阅读 · 0 评论 -
LeetCode 69. x的平方根 java实现 个人算法之旅
实现int sqrt(int x)函数。计算并返回x的平方根,其中x是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。解题思路1)使用二分查找,通过不断的缩小范围来...原创 2019-03-10 11:29:48 · 394 阅读 · 0 评论 -
LeetCode 37. 解数独 java实现 个人算法之旅
编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。空白格用'.'表示。一个数独。答案被标成红色。Note:给定的数独序列只包含数字1-9和字符'.'。 你可以假设给定的数独只有唯一解...原创 2019-03-10 11:22:23 · 163 阅读 · 0 评论 -
LeetCode 20 有效的括号 java实现 算法笔记
20. 有效的括号给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true解题思路:使用堆栈(stack)。栈是先...原创 2018-11-15 15:38:46 · 267 阅读 · 0 评论 -
232. 用栈实现队列 java实现 算法之路
232. 用栈实现队列使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。示例:MyQueue queue = new MyQueue(); queue.push(1);queue.push(2); queue.pe...原创 2018-11-15 16:43:56 · 483 阅读 · 0 评论 -
141.判断是否有环形列表 LeetCode java实现 算法之旅
141.判断是否有环形列表方法1:破解法:执行一分钟,判断是否最后为空方法2:存节点。用set集合来存储节点,判断是否有重复(时间复杂度:O(n))方法3:快慢指针:定义两个指针,slow,fast,slow+1,fast+2。如果有环,fast和slow会相遇,即相等。方法3代码:public class Solution { public boolean hasC...原创 2018-11-15 18:16:53 · 597 阅读 · 0 评论 -
算法之旅 1
算法一链表:*LeetCode中的206题 *翻转链表 /* 迭代法: 先将下一个节点记录下来 让当前节点指向上一个节点 将当前节点变成perv上一个节点 再让下一个节点变为当前节点 */ class solution(){ public ListNode reversList(ListNode head){ ListNode prev = null;/...原创 2018-11-14 21:06:04 · 129 阅读 · 0 评论 -
数据结构与算法 两两交换链表中的节点
自己要学的东西还多着呢 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.说明:你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换/*思路比较清晰,就是每次跳两个节点,后一个接到前面,前一个接到后一个...转载 2018-11-14 22:18:21 · 279 阅读 · 0 评论 -
LeetCode 703.数据流中的第K大元素 java实现 算法之旅
设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。解法一:记录前K个的最大值:每次进来一个比K个值里面最小值大的数,踢出K个值里面最小的那个数,把最新的那个数记录...原创 2018-11-16 23:07:18 · 1670 阅读 · 0 评论 -
LeetCode 239. 滑动窗口最大值 java实现 个人算法之旅笔记
239.滑动窗口最大值给定一个数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口k内的数字。滑动窗口每次只向右移动一位。返回滑动窗口最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 ...原创 2018-11-18 13:11:08 · 2987 阅读 · 0 评论 -
leetcodeLeetCode 1. 两数之和 java实现 个人算法之旅笔记
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路:解法一:暴力解题,...原创 2018-11-27 09:46:42 · 159 阅读 · 0 评论 -
LeetCode 236. 二叉树的最近公共祖先 java实现 个人算法之旅
解题思路:想要找出两个节点的最近祖先节点。树,首先考虑递归遍历。重点递归的返回条件,即return的条件。1,从顶层开始遍历,找到P或q返回,考虑在什么时候返回。即当遍历到p或q节点(他们变成了root节点时)返回root。2,当前的数被全部遍历完毕时,如果p 、q 分别在左子树或者右子树,说明其最近公共祖先节点为最开始的根节点。3,如果p和q都在左边或者右边,则最近公共祖先在左边...原创 2019-03-08 20:30:27 · 379 阅读 · 0 评论 -
LeetCode 235. 二叉搜索树的最近公共祖先 java实现 个人算法之旅
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root =[6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: ro...原创 2019-03-08 20:48:35 · 286 阅读 · 0 评论 -
递归、分治
递归 - 循环:通过函数体来进行循环举例:1.从前有个⼭山,2.⼭山⾥里里有个庙,3.庙⾥里里有个和尚讲故事:1.从前有个⼭山, 2.⼭山⾥里里有个庙, 3.庙⾥里里有个和尚讲故事: ......递归代码模板Class recursion(level, param1, param2, ...) //递归终止条件 if(le...原创 2019-03-09 16:02:50 · 125 阅读 · 0 评论 -
LeetCode 50.x的N次幂 java实现 个人算法之旅
实现pow(x,n),即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例2:输入: 2.10000, 3输出: 9.26100示例3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 <x< 10...原创 2019-03-09 16:47:38 · 378 阅读 · 0 评论 -
LeetCode 122。 买卖股票最佳时机 java实现 个人算法之旅
给定一个数组,它的第i个元素是一支给定股票第i天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入:[7,1,5,3,6,4]输出:7解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所...原创 2019-03-09 19:49:58 · 300 阅读 · 0 评论 -
LeetCode 102. 二叉树的层次遍历 java实现 个人算法之旅
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7],3/ \9 20/ \15 7返回其层次遍历结果:[[3],[9,20],[15,7]解题思路:层次遍历,优先想到广度优先搜索(BFS)和深度优先...原创 2019-03-09 21:55:42 · 506 阅读 · 0 评论 -
LeetCode 51. N皇后问题 java实现 个人算法之旅
解题思路每摆放一个queen就需要判断,即每一个queen就需要遍历判断是否可以存在。剪枝,回溯,DFS找出列,左斜线,右斜线和n,每一列之间的关系左斜线:列 + 行 = 常数右斜线:行 - 列 + n = 常数(行减去列可能会出现负数,所以加上N)使用3个一维boolean数组来记录列,左斜线,右斜线的关系。class Solution { public...原创 2019-03-10 10:39:25 · 557 阅读 · 0 评论 -
LeetCode 36. 有效的数独 java实现 个人算法之旅
判断一个9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用'.'表示。解题思路和N皇后有异曲同工之妙。列、行、3X3矩阵都只能有1~9...原创 2019-03-10 11:00:31 · 255 阅读 · 0 评论 -
了解java中的泛型
泛型一、 什么是泛型百度百科:泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。就我个人来看,“泛型”可以看成是一张“空白的占位符”,当你需要什么类型的时候,就可以往白纸上填写自己需要的类型。就像方法的形式参数是运行...原创 2018-05-27 14:20:10 · 349 阅读 · 1 评论