<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Doyle_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Doyle_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Doyle_]]></copyright><item><title><![CDATA[for循环中++i 和 i++ 的区别]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/128718236</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/128718236</guid><author>Doyle_</author><pubDate>Tue, 17 Jan 2023 16:51:56 +0800</pubDate><description><![CDATA[for循环中++i 和 i++ 的区别]]></description><category></category></item><item><title><![CDATA[关于SN和PN的概念]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/123174940</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/123174940</guid><author>Doyle_</author><pubDate>Mon, 28 Feb 2022 09:29:05 +0800</pubDate><description><![CDATA[1.SN码
SN码是产品序列号，是产品的身份证号码，又称：机器码、认证码、注册申请码等。SN码是Serial Number的缩写，有时也叫SerialNo，也就是产品序列号，产品序列是为了验证“产品的合法身份”而引入的一个概念，它是用来保障用户的正版权益，享受合法服务的；一套正版的产品只对应一组产品序列号。
2.PN码
PN（Part Number） 零件号，也是生产制造厂商为了表示唯一标识而制定的一列数字或数字和字母等的组合。

...]]></description><category></category></item><item><title><![CDATA[年化返修率的计算]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/121677051</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/121677051</guid><author>Doyle_</author><pubDate>Thu, 02 Dec 2021 14:43:13 +0800</pubDate><description><![CDATA[年化返修率=返修数*365/出货总时长

出货总时长是 所有这一批次的总时长
当前日期-生产日期
Datedif（当前，生产，“D"”）


]]></description><category></category></item><item><title><![CDATA[【leetcode】丑数相关题]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/119563470</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/119563470</guid><author>Doyle_</author><pubDate>Tue, 10 Aug 2021 10:33:51 +0800</pubDate><description><![CDATA[丑数相关题264.丑数II313.超级丑数
264.丑数II
class Solution {
    int[] nums = new int[]{2, 3, 5};
    public int nthUglyNumber(int n) {
        Queue&lt;Long&gt; q = new PriorityQueue&lt;&gt;();
        Set&lt;Long&gt; s = new HashSet&lt;&gt;();
        q.add(1L);
    ]]></description><category></category></item><item><title><![CDATA[【leetcode】哈希表相关题]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/118879421</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/118879421</guid><author>Doyle_</author><pubDate>Sun, 18 Jul 2021 19:05:48 +0800</pubDate><description><![CDATA[哈希表相关题变位词组
变位词组
法1：

对每个字符串进行排序作为 key，从而实现相同的「变位词」对应同一个 key，使用哈希表进行统计

class Solution {
    public List&lt;List&lt;String&gt;&gt; groupAnagrams(String[] strs) {

        List&lt;List&lt;String&gt;&gt; ans = new ArrayList&lt;&gt;();
        Map&lt;String, L]]></description><category></category></item><item><title><![CDATA[【leetcode】动态规划]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/118802840</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/118802840</guid><author>Doyle_</author><pubDate>Sun, 18 Jul 2021 16:44:47 +0800</pubDate><description><![CDATA[动态规划相关题打家劫舍连续子数组的最大和
打家劫舍
class Solution {
    public int rob(int[] nums) {
        int n=nums.length;
        if(n==0) return n;
        int []dp=new int[n+1];
        dp[0]=0;
        dp[1]=nums[0];
        for(int i=2;i&lt;=n;i++){
            dp[i]=Mat]]></description><category></category></item><item><title><![CDATA[【leetcode】回溯法]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/118730516</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/118730516</guid><author>Doyle_</author><pubDate>Fri, 16 Jul 2021 09:55:02 +0800</pubDate><description><![CDATA[回溯法相关问题组合全排列字母大小写全排列
回溯法解决组合问题
与排序问题的区别：回溯法在组合问题中元素的顺序不用考虑，只需要从当前位置向后寻找。
排序问题每次都需要从头寻找，需要使用visited数组记录访问过的元素。
组合
class Solution {
    public List&lt;List&lt;Integer&gt;&gt; combine(int n, int k) {
        List&lt;List&lt;Integer&gt;&gt; ans = new LinkedLis]]></description><category></category></item><item><title><![CDATA[【leetcode】链表 总结]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/118703899</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/118703899</guid><author>Doyle_</author><pubDate>Tue, 13 Jul 2021 18:41:43 +0800</pubDate><description><![CDATA[链表合并两个有序链表反转链表
合并两个有序链表

设定一个哨兵节点 prehead ，这可以在最后比较容易地返回合并后的链表
维护一个 pre指针

/**
 * Definition for singly-linked list.
 * public class ListNode {
 * int val;
 * ListNode next;
 * ListNode() {}
 * ListNode(int val) { this.val = val; }
 * ListNode(int val, Lis]]></description><category></category></item><item><title><![CDATA[【leetcode】层次遍历 （BFS）总结]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/118684499</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/118684499</guid><author>Doyle_</author><pubDate>Tue, 13 Jul 2021 15:58:25 +0800</pubDate><description><![CDATA[BFS相关题总结填充每个节点的下一个右侧节点指针01矩阵腐烂的橘子
填充每个节点的下一个右侧节点指针
层次遍历

将二叉树的每一层节点都连接起来形成链表。
层次遍历基于广度优先搜索 区别在于：广度优先搜索每次只会取出一个节点来拓展，而层次遍历每次将队列中的所有元素拿来拓展，
保证每次从队列中拿出来遍历的元素都是同一层的。


class Solution {
    public Node connect(Node root) {
        if (root == null) return null;]]></description><category></category></item><item><title><![CDATA[【leetcode】哈希表 & 摩尔投票]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/118609513</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/118609513</guid><author>Doyle_</author><pubDate>Fri, 09 Jul 2021 16:29:00 +0800</pubDate><description><![CDATA[面试题 17.10. 主要元素
解1：
【用哈希表】
class Solution {
    public int majorityElement(int[] nums) {
        int n=nums.length;
        Map&lt;Integer,Integer&gt; map=new HashMap&lt;&gt;();
        for(int i=0;i&lt;nums.length;i++){
            map.put(nums[i],map.get]]></description><category></category></item><item><title><![CDATA[【leetcode】前缀和+哈希表]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/118579985</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/118579985</guid><author>Doyle_</author><pubDate>Thu, 08 Jul 2021 18:46:54 +0800</pubDate><description><![CDATA[leetcode930

class Solution {
    public int numSubarraysWithSum(int[] nums, int goal) {
        int n=nums.length;
        int []sum=new int[n+1];
        //前缀和
        for (int i = 1; i &lt;=n ; i++) {
            sum[i]=sum[i-1]+nums[i-1];
        }
   ]]></description><category></category></item><item><title><![CDATA[Set.add()方法：向Set集合添加对象]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/118493923</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/118493923</guid><author>Doyle_</author><pubDate>Mon, 05 Jul 2021 16:58:43 +0800</pubDate><description><![CDATA[Java 集合类中的 Set.add() 方法用来向 Set 集合添加对象。
如果 Set 集合中已经包含相同的对象，则不改变 Set 集合。
该方法返回值为 boolean 对象，如果 Set 集合中不包含要添加的对象，则添加对象并返回   true，否则返回 false。

...]]></description><category></category></item><item><title><![CDATA[【leetcode】二分法 +倍增模板]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/118277087</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/118277087</guid><author>Doyle_</author><pubDate>Sun, 27 Jun 2021 17:33:16 +0800</pubDate><description><![CDATA[二分法模板

while (l &lt; r) {
    long mid = l + r + 1 &gt;&gt; 1;
    if (check(mid)) {
        l = mid;
    } else {
        r = mid - 1;
    }
}

或者·
long l = 0, r = 1000009;
while (l &lt; r) {
    long mid = l + r &gt;&gt; 1;
    if (check(mid)) {
        ]]></description><category></category></item><item><title><![CDATA[规则引擎的概念&应用]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/118087938</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/118087938</guid><author>Doyle_</author><pubDate>Fri, 25 Jun 2021 20:14:23 +0800</pubDate><description><![CDATA[业务规则管理系统
针对问题：
1、硬编码实现业务规则难以维护
2、硬编码实现业务规则难以应对变化
3、业务规则发生变化需要修改代码，重启服务后才能生效

规则引擎
优势
1、业务规则与系统代码分离，实现业务规则的集中管理
2、在不重启服务的情况下可随时对业务规则进行扩展和维护
3、可以动态修改业务规则，从而快速响应需求变更
4、规则引擎是相对独立的，只关心业务规则，使得业务分析人员也可以参与编辑、维护系统的业务规则
5、减少了硬编码业务规则的成本和风险
6、使用规则引擎提供的规则编辑工具，使复杂的业务规则实]]></description><category></category></item><item><title><![CDATA[数据增强相关笔记 （个人记录）]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/117430747</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/117430747</guid><author>Doyle_</author><pubDate>Sun, 06 Jun 2021 09:49:16 +0800</pubDate><description><![CDATA[为什么需要数据增强：
深度神经网络在许多人物中表现良好，但是这些网络通常需要大量的数据才能避免过度拟合。遗憾的是，许多场景无法获得大量的数据。数据增强技术的存在是为了解决这个问题，防止模型因为数据量不足而产生的过拟合。
什么是过拟合？
通过画出训练误差和测试误差曲线，可以很好判断过拟合问题，如果随着训练的进行，训练误差变小，测试误差却先减小后增大，我们就判断出线了过拟合问题。
如何进行数据增强
1.传统图像处理方法
几何变换 ：翻转  旋转 擦除 添加噪声
颜色变换
随机擦出
2.深度学习处理方法**
神经]]></description><category></category></item><item><title><![CDATA[Spring+SpringMVC+Mybatis]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/115719620</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/115719620</guid><author>Doyle_</author><pubDate>Fri, 16 Apr 2021 10:24:20 +0800</pubDate><description><![CDATA[Spring+SpringMVC+MybatisSpring1.Spring核心2.@value注解的作用3.Spring通知类型：4.依赖注入5.component和bean有什么区别：6.Bean的作用域：7.什么是spring的内部bean：8.spring的注入方式：9.Spring的jdbcTemplate对象和JDBC有什么区别：10.Spring实现事务的方式：11.bean的生命周期：12.spring、springboot、springcloud区别：13.spring中都使用了哪些设计模]]></description><category></category></item><item><title><![CDATA[编程语言+计算机网络+数据库 【面试必备】]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/115552189</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/115552189</guid><author>Doyle_</author><pubDate>Wed, 14 Apr 2021 17:37:23 +0800</pubDate><description><![CDATA[面经笔记总结 【编程语言】1.内存泄漏和溢出内存泄漏：1.常发性内存泄露：2.偶发性内存泄露：3.一次性内存泄漏：4.隐式内存泄漏：内存溢出1.永久保存区溢出：2.堆区溢出：3.栈区溢出：2.堆和栈的区别3.抽象类和接口抽象类：接口抽象类与接口的比较4.进程和线程进程：进程是程序的一次动态执行，是系统资源分配和调度的基本单位。线程:线程是程序运行的执行单元，依托于进程进程的调度算法：5.常用的Linux命令6.死锁产生原因：产生的四个必要条件解决方案：7.聚合函数定义：【计算机网络】1.[网络协议——七层、]]></description><category></category></item><item><title><![CDATA[【leetcode】下一个更大的元素]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/115401889</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/115401889</guid><author>Doyle_</author><pubDate>Fri, 02 Apr 2021 21:32:49 +0800</pubDate><description><![CDATA[给你两个 没有重复元素 的数组 nums1 和 nums2 ，其中nums1 是 nums2 的子集。
请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。
nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在，对应位置输出 -1 。

示例 1:
//输入: nums1 = [4,1,2], nums2 = [1,3,4,2].
//输出: [-1,3,-1]
//解释:
//    对于 num1 中的数字 4 ，你无法]]></description><category></category></item><item><title><![CDATA[IDEA注释模板 （param return如何配置~）]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/115184677</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/115184677</guid><author>Doyle_</author><pubDate>Wed, 24 Mar 2021 19:10:17 +0800</pubDate><description><![CDATA[废话不多说，直接上图上代码
我的 缩写是 *  最后的输出快捷键是 /** 加 tab键

代码如下：
*
 * @description: 
 * @author Zhang Jingbo
 * $VAR1$ $params$
 * @return $returns$
 * @date $date$ $time$
 */



VAR1部分代码：
直接CV就行
groovyScript(" 	def result='';   	def params=\"${_1}\".replaceAll('[\\\\[]]></description><category></category></item><item><title><![CDATA[【数据库基础】 mysql limit和offset用法]]></title><link>https://blog.youkuaiyun.com/Doyle_/article/details/114917373</link><guid>https://blog.youkuaiyun.com/Doyle_/article/details/114917373</guid><author>Doyle_</author><pubDate>Wed, 17 Mar 2021 10:17:50 +0800</pubDate><description><![CDATA[limit和offset用法
mysql里分页一般用limit来实现

select* from article LIMIT 1,3
select * from article LIMIT 3 OFFSET 1

上面两种写法都表示取2,3,4三条条数据

1.当limit后面跟两个参数的时候，第一个数表示要跳过的数量，后一位表示要取的数量
select* from article LIMIT 1,3 就是跳过1条数据,从第2条数据开始取，取3条数据，也就是取2,3,4三条数据
2.当 limit后面跟一个]]></description><category></category></item></channel></rss>