自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

原创 华为OD机考(HJ16 购物单)

应广大同学要求,开始以OD机考题作为练习题,看看算法和数据结构掌握情况。有需要练习的可以关注下。

2024-06-23 09:17:37 456

原创 Java八股文系列之六(Spring)

Spring IOC(Inversion of Control)是Spring框架的核心特性之一,翻译为“控制反转”。它是一种设计原则,用于将对象的创建和依赖关系的管理从应用程序代码中分离出来,由Spring容器(也称为IOC容器)负责管理。核心概念1.控制反转(Inversion of Control)控制反转的基本思想是将对象的控制权从应用程序代码中移交给Spring容器。传统的编程方式中,对象是通过代码直接创建和管理的,而在IOC容器中,对象的创建和依赖关系的注入都是由容器来管理的。2.

2024-06-20 09:31:33 345

原创 Java数据结构与算法(混合背包)

混合背包问题是一类复杂的背包问题,包含三种类型的物品:01背包物品(每种只能选一次),完全背包物品(每种可以选无限次),和多重背包物品(每种可以选有限次)。

2024-06-19 06:45:19 305

原创 c语言单元测试构建

查阅gtest、ceedling、unity、cmock等测试框架文档,对比是否适合当前的项目。

2024-06-18 09:54:07 548

原创 Java数据结构与算法(0/1背包问题优化)

背包问题(Knapsack Problem)是组合优化问题中的一个经典问题,有多个变种。这里我们讨论的是 0/1 背包问题,这是最基本的一种形式。问题的描述如下:给定 n 件物品,每件物品有一个重量 wi 和一个价值 vi,以及一个背包,它能够承载的最大重量为 W。我们需要确定应该将哪些物品放入背包,以使得背包内物品的总价值最大。

2024-06-18 07:40:12 431

原创 Java数据结构与算法(多重背包)

多重背包问题(Multiple Knapsack Problem, MKP)是背包问题的一个变种。在这种问题中,你有多个背包,每个背包都有一定的容量。你需要选择一些物品放入这些背包中,以使放入物品的总价值最大化。每个物品都有一个价值和一个重量,并且可以被放入一个或多个背包中,但每个物品只能使用有限的次数。

2024-06-17 18:13:30 390

原创 Java数据结构与算法(完全背包)

完全背包问题是背包问题的一个变种,与0/1背包问题不同,在完全背包问题中,每种物品可以被选取多次。问题描述如下:给定 n 件物品,每件物品有一个重量 wi和一个价值 vi,以及一个背包,它能够承载的最大重量为 W。我们需要确定应该将哪些物品放入背包,以使得背包内物品的总价值最大。

2024-06-16 15:45:05 593

原创 Java数据结构与算法(0/1背包问题)

背包问题(Knapsack Problem)是组合优化问题中的一个经典问题,有多个变种。这里我们讨论的是 0/1 背包问题,这是最基本的一种形式。问题的描述如下:给定 nnn 件物品,每件物品有一个重量 wiw_iwi​ 和一个价值 viv_ivi​,以及一个背包,它能够承载的最大重量为 WWW。我们需要确定应该将哪些物品放入背包,以使得背包内物品的总价值最大。

2024-06-16 15:13:54 392

原创 LeetCode热题3.无重复的最长字串

经过前序的一系列数据结构和算法学习后,开始用leetCode热题练练手。给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc",所以其长度为 3。

2024-06-15 09:30:07 569

原创 华为OD机考题HJ3 明明的随机数

描述明明生成了𝑁N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。数据范围: 1≤𝑛≤1000 1≤n≤1000 ,输入的数字大小满足 1≤𝑣𝑎𝑙≤500 1≤val≤500输入描述:第一行先输入随机整数的个数 N。接下来的 N 行每行输入一个整数,代表明明生成的随机数。具体格式可以参考下面的"示例"。输出描述:输出多行,表示输入数据处理后的结果输入:3221输出:12。

2024-06-14 08:33:35 871

原创 华为OD机考题HJ2 计算某字符出现次数

描述写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)数据范围: 1≤𝑛≤1000 1≤n≤1000输入描述:第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。输出描述:输出输入字符串中含有该字符的个数。(不区分大小写字母)输入:ABCabcA输出:2。

2024-06-14 07:43:25 453

原创 华为OD机考题HJ1 字符串最后一个单词的长度

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

2024-06-13 18:31:17 479

原创 Leetcode热题2.两数相加

经过前序的一系列数据结构和算法学习后,开始用leetCode热题练练手。给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可[7,0,8]

2024-06-13 07:55:18 354

原创 LeetCode热题1. 两数之和

经过前序的一些列数据结构和算法学习后,开始用leetCode热题练练手。看看效果如何。给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。[0,1]因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。

2024-06-13 06:39:51 437

原创 Java数据结构与算法(约束问题回溯算法)

要求在一个 N x N 的棋盘上放置 N 个皇后,使得每个皇后都无法攻击到其他任何一个皇后。

2024-06-12 09:50:49 75

原创 Java数据结构与算法(组合问题回溯算法)

上期重点介绍了回溯算法在约束满足问题情况下应用。这期看看在组合问题场景下如何使用。

2024-06-11 16:59:21 536

原创 Java数据结构与算法(概览)

基于前面动态规划、贪心算法、深度搜索、广度搜索、分治算法的练习,已经初步对这些算法有个认识。但是在面对具体问题选用何种算法仍存在疑惑。下面梳理下这些算法的定义、区别和使用场景来帮助大家更有效巩固这些算法。

2024-06-11 09:34:40 855 1

原创 leetcode热题881. 救生艇

救生艇属于贪心算法,解题之前条件一定要归纳好。题目中存在3个要求:1.一艘船最多坐2人2.船数要求最小3.每艘船重量小于limit意味着体重较轻的两人可以同乘一艘救生艇。

2024-06-10 15:18:13 421 1

原创 Java数据结构与算法(买卖股票的最佳时机二贪心算法)

买卖股票最佳时机二,此时不限次数的买卖的要求获得的利益最大化。暴力算法依旧可行,可以参考之前的练习。

2024-06-10 07:14:46 490

原创 Java数据结构与算法(盛水的容器贪心算法)

针对此类算法题,最基本是暴力算法求解,暴力算法基本是固定的套路。在暴力算法基础上寻求优化思路,是否可以单词遍历能否得到所要的结果。此时需要观察数据的特征,推演数据变化对结果的影响,从而找到合理的解题思路。

2024-06-09 22:36:25 597

原创 Java数据结构与算法(买卖股票最佳时机​)

动态规划主要用于解决具有重叠子问题和最优子结构性质的问题。它通过将问题分解为子问题来解决复杂问题,每个子问题仅解决一次,并将其结果存储,以供后续使用,从而避免了重复计算。买卖股票对应leetcode。

2024-06-09 12:16:29 284 1

原创 Java数据结构与算法(爬楼梯动态规划)

爬楼梯就是一个斐波那契数列问题,采用动态规划是最合适不过的。

2024-06-08 06:26:22 450

原创 Java数据结构与算法(最大子数组和动态规划)

动态规划主要用于解决具有重叠子问题和最优子结构性质的问题。它通过将问题分解为子问题来解决复杂问题,每个子问题仅解决一次,并将其结果存储,以供后续使用,从而避免了重复计算。对应leetcode。

2024-06-07 23:11:41 538

原创 Java数据结构与算法(最长回文子串动态规划)

回文子串是练习数据结构和算法比较好的使用场景,可以同时练习到双指针、动态规划等一些列算法。

2024-06-05 09:08:18 436

原创 Java数据结构与算法(最长回文子串中心扩散法)

回文子串是练习数据结构和算法比较好的使用场景,可以同时练习到双指针、动态规划等一些列算法。

2024-06-01 17:32:04 418

原创 Java数据结构与算法(最长回文子串暴力算法)

回文子串是练习数据结构和算法比较好的使用场景,可以同时练习到双指针、动态规划等一些列算法。

2024-06-01 15:45:12 310

原创 Java数据结构与算法(有向无环图)

有向无环图(Directed Graph)是在有向图的基础上,增加无环的检查。

2024-05-31 20:04:22 504

原创 Java数据结构与算法(有向图)

有向图(Directed Graph)是一种由顶点和有方向的边组成的图数据结构。

2024-05-31 12:51:13 384

原创 Java数据结构与算法(无向图)

图是一种用于表示对象及其相互关系的数据结构。图由顶点(也称为节点)和边组成,边连接顶点,表示顶点之间的关系。根据边的方向性,图可以分为有向图和无向图。根据边的权重,图可以分为加权图和非加权图。

2024-05-30 22:30:54 490

原创 Java数据结构与算法(红黑树)

红黑树是一种自平衡二叉搜索树,确保在插入和删除操作后,树的高度保持平衡,从而保证基本操作(插入、删除、查找)的时间复杂度为O(log n)。

2024-05-29 20:26:45 602

原创 Java数据结构与算法(散列表)

散列表是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。而key的冲突主要通过链表的方式来处理,后期链表过长情况下可以通过红黑树来优化查询效率。

2024-05-28 22:29:39 560

原创 GDB远程调试

gdb主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数即可。要用gdb调试程序,必须在编译时加上-g和-ggdb选项,如果没有-g,将看不见程序的函数名和变量名,代替它们的全是运行时的内存地址。

2024-05-27 15:41:37 707

原创 Java数据结构与算法(B+树)

B+树(B+ Tree)是一种平衡树数据结构,广泛用于数据库和文件系统中。它是一种自平衡的树结构,每个节点包含多个键,并且所有键都是排序的。B+树的叶子节点包含指向相邻叶子节点的指针,这使得范围查询非常高效。

2024-05-27 07:35:36 445

原创 Java数据结构和算法(B树)

平衡的意思是又满足平衡二叉树的一些性质,左树大于右树;多路意思是,可以多个结点,不再是像二叉树只有两个结点;

2024-05-25 22:28:07 580

原创 Java数据结构与算法(平衡二叉树)

通过满足特定的条件来保持其平衡性。平衡二叉树的实现原理基于二叉排序树,在构建过程中,每当插入一个结点时,都会检查是否因插入而破坏了树的平衡性。如果破坏了,则找出最小不平衡子树,并在保持二叉排序树特性的前提下,调整最小不平衡子树中各结点之间的链接关系,进行相应的旋转,使之成为新的平衡子树。通过这样的机制,平衡二叉树能够有效地保持其结构的平衡,从而在插入、删除和查找等操作中保持较高的效率。

2024-05-25 10:34:02 446

原创 Java数据结构与算法(最小栈)

设计一个支持pushpoptop操作,并能在常数时间内检索到最小元素的栈。实现MinStackMinStack()void pop()int top()

2024-05-23 22:29:49 384

原创 Java数据结构与算法(栈判断回文链表)

回文链表的判断最适合用栈。

2024-05-23 22:16:02 278

原创 Java数据结构与算法(链表栈)

栈是一种简单而高效的数据结构,适用于很多应用场景。通过数组或链表实现栈,各有优缺点。数组实现的栈在内存连续性和访问速度上有优势,但可能需要处理动态扩容问题。而链表实现的栈在内存利用上更灵活,但每次操作都涉及节点的创建和销毁。理解和掌握栈的基本原理和操作,对于解决实际编程问题非常有帮助。

2024-05-22 18:20:34 439

原创 Java数据结构与算法(数组栈)

栈是一种简单而高效的数据结构,适用于很多应用场景。通过数组或链表实现栈,各有优缺点。数组实现的栈在内存连续性和访问速度上有优势,但可能需要处理动态扩容问题。而链表实现的栈在内存利用上更灵活,但每次操作都涉及节点的创建和销毁。理解和掌握栈的基本原理和操作,对于解决实际编程问题非常有帮助。

2024-05-22 13:14:55 221

原创 Java数据结构与算法(队列移动平均值)

计算计算滑动窗口里所有数字的平均值。

2024-05-21 20:52:42 314

空空如也

空空如也

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

TA关注的人

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