evolution_language
码龄12年
关注
提问 私信
  • 博客:36,096
    36,096
    总访问量
  • 52
    原创
  • 38,022
    排名
  • 46
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江西省
  • 加入CSDN时间: 2012-12-31
博客简介:

softstarhhy的专栏

博客描述:
盖世英雄
查看详细资料
  • 原力等级
    当前等级
    2
    当前总分
    67
    当月
    96
个人成就
  • 获得81次点赞
  • 内容获得4次评论
  • 获得92次收藏
创作历程
  • 12篇
    2025年
  • 1篇
    2023年
  • 1篇
    2022年
  • 3篇
    2021年
  • 21篇
    2020年
  • 11篇
    2015年
  • 4篇
    2014年
成就勋章
TA的专栏
  • java时间工具类
    1篇
  • 算法
    22篇
  • lintcode
    3篇
  • dedecms
    1篇
  • java
    30篇
  • spring和mybatis整合
    3篇
  • spring异常
    1篇
  • spring异常处理
    3篇
  • 即
  • java socket
    1篇
  • jquery
    1篇
  • 安全测试
    1篇
  • 事项
    1篇
  • 网络安全
    1篇
  • 自动化测试
    1篇
兴趣领域 设置
  • 数据结构与算法
    排序算法推荐算法
  • 人工智能
    分类回归
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

LintCode第1534题-将二叉搜索树转换为已排序的双向链接列表

双向链表中的每个节点都有一个前任和后继。对于循环双向链表,第一个元素的前导是最后一个元素,最后一个元素的后继是第一个元素。2.由于为中序遍历 那么要在递归右子树前就要把前两个节点即当前的节点和前驱节点找到并相互链接,并通过右子树来遍历来判断是否有后续节点.转换后,树节点的左指针应指向其前一个指针,右指针应指向其后继指针。可以将左右指针视为双向链表中上一个和下一个指针的同义词。“head”符号表示它指向的节点是链表的最小元素。//通过中序遍历将其变为按大小顺序递增的循环双向链表。下图显示了转换后的BST。
原创
发布博客 2025.03.26 ·
558 阅读 ·
7 点赞 ·
0 评论 ·
18 收藏

LintCode 第64题合并排序数组(简单版)

描述合并两个排序的整数数组A和B变成一个新的数组。原地修改数组A把数组B合并到数组A的后面。解释:经过合并新的数组为[1,2,3,4,5]解释:经过合并新的数组为[1,2,3,4,5]思路:题目中要求原地排序,则不能从新建一个数组用来记录A数组和B数组的比值并写入应该采用双指针,从后往前原地合并。
原创
发布博客 2025.03.24 ·
387 阅读 ·
5 点赞 ·
0 评论 ·
5 收藏

LintCode第627题-最长回文串

如果是统计已知该字符串是回文数 统计最长的子回文数字符串 那么就应该使用背向双指针法来统计最长的子回文数字符串。给出一个包含大小写字母的字符串。求出由这些字母构成的最长的回文串的长度是多少。都是统计每个字符出现次数,然后累加偶数部分,遇到奇数只取。将这数的位数反转排列得到的“倒序数反序数和原数一样。来判断是否存在奇数个字符,用于最后。数据是大小写敏感的,也就是说,并不会被认为是一个回文串。,最后最多加一个中心字符。
原创
发布博客 2025.03.24 ·
120 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

LintCode第1712题 - 和相同的二元子数组

描述在由若干0和1组成的数组A中,有多少个和为S的子数组思路1 采用同向双指针法 通过暴力双指针枚举所有起点 + 滑动右指针每轮固定左指针 left,右指针从 left 向右滑动;每次累加和,如果等于 S,就记录这个子数组;关键点是从每个 left 出发,向右滑,不能随便跳过任何一个组合代码1:left < n;left++)//同向双指针法计算是否为目前值Sright < n;break;// 再滑动右指针没意义了思路2 前缀和 + 哈希表。
原创
发布博客 2025.03.22 ·
954 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

LintCode第460题-书籍复印

贪心判断是否可以完成任务 (canDivide 方法) 判断是否可以在“每个人最多抄 midPages 页”的前提下,把书分配给 ≤k 个人: 从头遍历 pages[];确定搜索范围(最小页数 ~ 最大页数) 最小可能页数 minPages:数组中页数最多的那本书(因为任何一个人都至少要能抄这本书) 最大可能页数 maxPages:数组中所有页数的总和(只有一个人抄完全部书的情况)// 当前这本书分给新的人。//已经找出最小的数和最大的数 利用贪心算法判断 找出最小的k个人可以完成复制n本书的工作量。
原创
发布博客 2025.03.22 ·
362 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏

LintCode多关键字排序

描述 给定 n 个学生的学号(从 1 到 n 编号)以及他们的考试成绩,表示为(学号,考试成绩),请将这些学生按考试成绩降序排序,若考试成绩相同,则按学号升序排序。if (array[j][1] > array[j - 1][1]) { // 成绩降序排序。对二维数组进行排序时,每一行的比较逻辑都需要返回一个整数值,来告诉排序算法两个元素的相对顺序。// 比较两个元素 a 和 b。
原创
发布博客 2025.03.21 ·
470 阅读 ·
4 点赞 ·
0 评论 ·
8 收藏

LintCode 第460题在排序数组中找最接近的K个数

从左右指针中选出 更接近 target 的数 每次比较 A[left] 和 A[right] 到 target 的差值 取较近的数放入结果数组 直到选满 k 个。while(k>0) //在k次中比较每个数与target的接近程度。//避免无限循环 只会执行k次 即找到最接近的k个数。//用来记录最接近target的索引。1.第一步由于已知给定的数组的有序递增的数组 数组由于为线性结构。题中处理相同的学生成绩的时候取最从小到大的学号的处理方法是一样的。// 继续找最左端相等的值的下标索引 即数组指针。
原创
发布博客 2025.03.21 ·
254 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏

二分查找和LintCode第14题

二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。为该题目的关键点 如果题目要求返回最右侧的和target值相等的的数组的索引 那么应该是 result=mid;答案是可以的 可以使用二分查找,即使有序数列中包含重复元素 但是需要注意题目的要求是返回哪个索引。那么引出一个问题 二分查找如果是有序的数列有重复的元素 还能使用二分查找吗。//代码需要注意的地方在于 该题目要求的是。给定一个排序的整数数组(升序)和一个要查找的整数。返回最左侧的和target值相等的的数组的索引。
原创
发布博客 2025.03.20 ·
315 阅读 ·
4 点赞 ·
0 评论 ·
3 收藏

堆排序的思路与常见的问题

构建大顶堆需要同时满足左子树和右子树小于堆顶的元素 若从A[0]开始进行遍历 并且开始递归 只能保证一侧的子树满足要求 而不能保证左子树和右子树同时满足 因为堆排序是类似于完全二叉树的结构 所以需要进行从最后一个非叶子节点 i = (n-1)/2 开始,依次向上调整堆,保证每个子树都符合最大堆的定义,最终整个数组成为一个合法的最大堆.但 堆的其他部分(A[1] ~ A[j-1])仍然是最大堆,只有 A[0] 可能破坏堆结构。只让 A[0] 下沉,保持 A[0] ~ A[j-1] 的最大堆性质。
原创
发布博客 2025.03.19 ·
768 阅读 ·
23 点赞 ·
0 评论 ·
10 收藏

理解冒泡排序

在待排序的一组数中,将相邻的两个数进行比较,若前面的数比后面的数大就交换两数,否则不交换;如此下去,直至最终完成排序.swapped) { // 如果某一轮没有发生交换,说明数组已排序好,提前终止。// 标记是否发生交换。相邻元素 把最小的数推到前面 (本文是以从小到大的顺序进行排列)swapped = true;// 发生交换,继续排序。其中关键点在于两层循环 每层循环都有不同的意义。// 立即跳出整个外层循环。内层循环则是从后往前比较。
原创
发布博客 2025.03.19 ·
158 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

归并排序的思路与实现

├── merge(A, 0, 7, temp) // 合并 [4, 5, 7, 8] 和 [1, 2, 3, 6]│ ├── merge(A, 0, 3, temp) // 合并 [4, 8] 和 [5, 7]│ ├── merge(A, 4, 7, temp) // 合并 [1, 3] 和 [2, 6]│ │ ├── merge(A, 4, 5, temp) // 合并 [1] 和 [3]│ ├── mergeSort(A, 4, 5) // 处理 [1, 3]
原创
发布博客 2025.03.18 ·
610 阅读 ·
17 点赞 ·
0 评论 ·
20 收藏

快速排序之Hoare Partition法的递归实现

就是最终的位置 因为 左右子区间都相等了 只有一个元素 也就确认了最终的位置 类似于 二叉树的前序遍历 而Hoare Partition确认最终位置类似于数学中的夹逼原理 下面代码就是每一次都会确认正确的左右子区间 左区间是小于pivot的值 这里以int pivot=A[left];[1 2 5 3 7 8 6 9] 我们可以看到 一轮遍历并不能将6放到最终位置 但已经正确放入的右子区间即 [7 8 6 9]而left=4 即A[4]=6 执行完后 left=right=4;
原创
发布博客 2025.03.18 ·
258 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

Access简单应用

对比Access和mysql数据库,以及简单应用
原创
发布博客 2023.07.16 ·
314 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java Calendar获取某一年的所有月份并获得对应每个月的第一天 最后一天时间

for (int i = 1; i <=12 ; i++) { //获取当年的12个月份 Date startDate = new Date(); Date endDate = new Date(); startDate=getFirstDayOfMonth(currentYear,i+""); endDate=getLastDayOfMonth(currentYear,i+"");}//获取目标年份中目标月的第一天的开始时间public...
原创
发布博客 2022.04.24 ·
1972 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

was altered from xxx to null; nested exception is org.hibernate.HibernateException

was altered from xxxto null; nested exception is org.hibernate.HibernateException直接上干货:在使用JPA时 如果使用的保存方法在保存数据库已存在的对象时,而这时你将数据库的已存在的数据传过来并使其主键id为null 这时如果调用JPA的修改方法就出出现这个错误 .解决办法 在一个事务中当使其主键id为null调用JPA自带的save方法而不是update方法...
原创
发布博客 2021.11.05 ·
3150 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

org.hibernate.HibernateException: identifier of an instance 错误可能出现的情况

最近在使用hibernate jpa中出现了该错误org.hibernate.HibernateException: identifier of an instance 并且反复检查没有映射没有任何问题最后发现问题竟然是主键的问题 比如我在一个合同对象中包含一个附件即1对1的关系 那么该合同的主键id假如在丢失后,进行插入不会有问题 无非是一个是JpaRepository进行保存操作一个是修改操作 区分是通过主键的id 但是如果后续附件要关联上合同的外键 那么当合同的主键丢失后 hibernat...
原创
发布博客 2021.10.04 ·
2915 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

1200 · 相对排名

描述根据N名运动员的得分,找到他们的相对等级和获得最高分前三名的人,他们将获得奖牌:“金牌”,“银牌”和“铜牌”。N是正整数,并且不超过10,000。所有运动员的成绩都保证是独一无二的。样例例子 1:输入: [5, 4, 3, 2, 1]输出: ["Gold Medal", "Silver Medal", "Bronze Medal", "4", "5"]说明:前三名运动员获得前三名最高分,因此获得“金牌”,“银牌”和“铜牌”。对于后两名运动员,你只需要根据他们的分数输出他
原创
发布博客 2021.06.29 ·
159 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

lintcode算法题之219-在排序链表中插入一个节点

219.在排序链表中插入一个节点在链表中插入一个节点。样例样例 1:输入:head = 1->4->6->8->null, val = 5输出:1->4->5->6->8->null样例 2:输入:head = 1->null, val = 2输出:1->2->null代码区:/**...
原创
发布博客 2020.04.02 ·
269 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

lintcode算法题之228-链表的中点

228.链表的中点找链表的中点。样例样例 1:输入: 1->2->3输出: 2 样例解释: 返回中间节点的值样例 2:输入: 1->2输出: 1 样例解释: 如果长度是偶数,则返回中间偏左的节点的值。 代码区:/*** Definition for ListNode* public class ListNode {...
原创
发布博客 2020.03.24 ·
140 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

lintcode算法题之822-相反的顺序存储

822.相反的顺序存储给出一个链表,并将链表的值以倒序存储到数组中。样例样例1输入: 1 -> 2 -> 3 -> null输出: [3,2,1]样例2输入: 4 -> 2 -> 1 -> null输出: [1,2,4]代码区:/*** Definition for ListNode* public class...
原创
发布博客 2020.03.10 ·
197 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏
加载更多