- 博客(21)
- 收藏
- 关注
原创 ARTS-11(动态规划、线程池解析、Feign原生接口调用、好用工具推荐)
Algorithm动态规划思路及解题Review线程池的使用1)、多线程的好处提升资源利用率提高程序处理效率:例如对执行顺序不敏感的任务,可以交由多个线程进行并行处理减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。线程池作用就是限制系统中执行线程的数量,用线程池控制线程数量,其他线程排 队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资
2021-08-22 15:39:03
232
原创 动态规划思路及解题
概念引入动态规划是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、工业生产、军事以及自动化控制等领域,并在背包问题、生产经营问题、资金管理问题、资源分配问题、最短路径问题和复杂系统可靠性问题等中取得了显著的效果。DP思想动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个
2021-08-22 13:43:08
574
原创 ARTS-10(括号生成回溯法,职责链设计模式,职场工作小感悟)
Algorithm题目描述leecode 22. 括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8题目详解1、概念:回溯算法是一种优先搜索的方法,因为有些问题是存在很多可能性,如果通过穷举法,虽然最终能解决问题,但是时间复
2021-08-14 18:57:49
158
原创 ARTS-9(回溯法的组合总和系列,泛型总结、人生的意义在于体验)
Algorithm题目描述leecode 39. 组合总和给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种组合是唯一的。对于给定的输入,保证和为 target 的唯一组合数少于 150 个。示例:输入: candidates = [2,3,6,7], target = 7输出: [[7],
2021-08-08 16:58:57
307
原创 ARTS-5(关于hive的基础学习)
AlgorithmReview什么是hive?1、Hive是基于Hadoop的一个数据仓库工具。2、可以将结构化的数据文件映射为一张表,并提供完整的sql查询功能。3、底层是将sql语句转换为MapReduce任务进行运行。4、Hive提供了一系列的工具,可以用来进行数据提取、转化、加载(ETL Extract-Transform-Load ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。本质上是一种大数据离线分析工具5、提供HQL(Hive SQL)查询功能6、
2021-08-08 12:02:27
151
原创 日志系统的介绍和使用
AlgorithmReview1、日志系统的介绍使用介绍和区别:Log4j是Apache的一个开放源代码项目,作用有:①将日志信息输送到控制台、文件等;②控制每一条日志的输出格式;③通过定义每一条日志信息的级别,更加细致的控制日志的生成过程;该日志方式可以通过配置文件来灵活配置。slf4j是简单日志门面,它是把不同的日志系统的实现进行了具体的抽象化,只提供了统一的日志使用接口,使用时只需要按照其提供的接口方法进行调用即可,由于它只是一个接口,并不是一个具体的可以直接单独使用的日志框架,所以最终日志
2021-08-08 11:39:14
1310
原创 2021-06-16(链表中倒数第k个节点)
[剑指 Offer 22. 链表中倒数第k个节点](https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/)题目描述输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。解题思路为了能够只遍历一次就能找到倒
2021-06-16 22:29:22
45
原创 2021-06-02(删除链表中的重复元素)
83. 删除排序链表中的重复元素题目描述存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。示例 1:输入:head = [1,1,2]输出:[1,2]解题思路1、因为链表是有序的,所以重复元素一定相邻。2、遍历链表,如果发现当前元素和下个元素值相同,就删除下个元素值3、遍历结束后,返回原链表的头部代码实现class Solution { public ListNode deleteDup
2021-06-02 21:40:41
314
原创 2021-05-31
[92. 反转链表 II](https://leetcode-cn.com/problems/reverse-linked-list-ii/)题目描述给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。示例 1:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]示例 2:输入:head = [5
2021-05-31 22:52:32
83
原创 2021-05-30(旋转数组的最小数字)
剑指 Offer 11. 旋转数组的最小数字题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0解题思路观察旋转之后的数组可以发现划分为了两个子数组,并且,前面的字数组元素大于或者等于后面的子数组,并且发现最小元素正好是两个
2021-05-30 21:42:05
59
原创 2021-05-29(斐波那契数列、青蛙跳台阶)
剑指 Offer 10- I. 斐波那契数列题目描述写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输
2021-05-29 21:44:44
83
原创 2021-05-28(删除链表结点、反转链表)
237_删除链表中的节点题目描述请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.说明:1、链表中至少包含两个节点2、链表
2021-05-28 21:34:47
97
原创 2021-05-27(两数之和、验证回文串、长度最小的子数组)
leecode167. 两数之和 II - 输入有序数组题目描述给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.length 。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例 1:输
2021-05-27 22:57:27
73
原创 2021-05-26(替换空格、从尾到头打印链表)
剑指 Offer 05. 替换空格题目描述请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”限制:0 <= s 的长度 <= 10000解题思路双指针方法1、首先将空格数量计算出来,将其转化成字符数组2、根据需要替换的空格数量创建新的字符数组3、利用双指针,头指针指向原有字符数组的末尾,尾指针指向替换后的字符数组的末尾。。接下来向前移动头指针,逐个把它指向的字符复制
2021-05-26 21:48:55
118
原创 ARTS-8(坚持不容易,但还是想试试)
Algorithmleecode61-旋转链表题目描述给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL
2020-11-29 23:10:33
126
原创 ARTS-7
ReviewCountDownLatch同步计数器CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。CountDownLatch的用法CountDownLatch典型用法:1、某一线程在开始运行前等待n个线程执行完毕。将CountDownLatch的计数器初始化为new CountDownLatch(n),每当一个任务线程执行完毕,就将计数器减1 countdownLatch.countDown(),当计数器的值变为0时,在C
2020-10-04 22:14:26
118
原创 ARTS-6(加大激情的马力,来个华丽的转变)
Algorithmleecode-119 杨辉三角 II题目描述给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。示例:输入: 3输出: [1,3,3,1]解题思路例如输入索引k = 3, 对应是第 3 + 1 = 4行,得出第4行共有4个值,且每个值为第一个值为: 1第二个值为: (n - 1) / 1 = (4 - 1) / 1 = 3第三个值为: (n - 1) / 1 * (n -2) / 2 = (n - 1)(n - 2)/ (1 * 2) = (4-
2020-09-13 18:10:38
177
1
原创 ARTS-4(效率工作、健康生活)
Algorithm【leecode-35 搜索插入位置】题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0解题思路排序数组中寻找目标值,可以选择二分查找法代码实
2020-08-02 23:21:44
187
1
原创 ARTS-3(没有标题的一周)
Algorithm【Leecode-438 找到字符串中所有字母异位词】题目描述给定一个字符串s和一个非空字符串p,找到s中所有是p的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串s和 p的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例1:输入:s: “cbaebabacd” p: “abc”...
2020-05-03 17:42:52
152
原创 ARTS-2(关于自律)
Algorithm【Leecode-845 数组中的最长山脉】题目描述我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”:B.length >= 3存在 0 < i < B.length - 1 使得 B[0] < B[1] < … B[i-1] < B[i] > B[i+1] > … > B[B.length - 1...
2020-04-04 22:06:45
141
原创 ARTS-1(生活的感悟)
Algorithm题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要...
2020-03-21 23:22:37
241
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人