自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hope_wisdom的技术博客

一起学习,一起成长,一起进步

  • 博客(338)
  • 收藏
  • 关注

原创 黄景仁,笔墨间的一抹清寒

黄景仁的一生,是诗与命运交响的悲歌。他的诗,不仅仅是个人情感的抒发,更是那个时代文人普遍困境的缩影。在那个华丽而压抑的乾隆盛世背后,黄景仁用自己的笔,勾勒出了一个又一个真实而动人的故事,让后人在品读中,感受到了超越时空的情感共鸣。

2024-07-26 20:33:00 210 3

原创 Python面试宝典第20题:精选问答题

在下面的示例代码中,装饰器my_decorator是一个函数,它接收另一个函数func作为参数,并返回一个新的函数wrapper。使用步骤包括定义异步函数(使用async def),在事件循环中运行协程(通过asyncio.run()、asyncio.create_task()等),以及使用await关键字等待异步操作完成,而无需额外线程或进程。4、上下文管理器是实现了__enter__()和__exit__()方法的对象,用于资源管理,确保在代码块执行前后执行特定的操作,比如:打开文件、关闭文件。

2024-07-26 08:19:38 923 21

原创 Python面试宝典第19题:最小路径和

记忆化递归法和动态规划法的时间复杂度均为O(m*n),其中m和n分别是网格的行数和列数。这是因为,每个单元格最多被访问一次。两者的空间复杂度也一样,均为O(m*n), 需要一个与原网格大小相同的二维数组来存储中间结果。动态规划法还可以通过使用一维数组(滚动数组)来优化空间复杂度至 O(n)。这是因为,每一行的计算只需要前一行的信息,而不需要保留整个二维数组。对于每行,我们只需维护一个长度为n的一维数组。这样在计算完一行后,可以复用该数组空间来存储下一行的计算结果。

2024-07-25 08:29:38 961 21

原创 Python面试宝典第18题:单词搜索

两种算法的时间复杂度均为O(m * n * 4^L),其中m和n分别是网格的行数和列数,L是单词的长度。这是因为每个单元格可能触发一条路径,而每条路径最多可能有4个不同的方向可以探索。空间复杂度均为O(m * n),因为需要这么多的空间来记录已访问状态。相比回溯法,BFS在处理较宽的搜索树时通常更为高效,因为它可以更快地找到最短路径。但BFS实现相对复杂一些,需要管理队列和已访问状态的哈希集合。

2024-07-24 06:00:00 655 15

原创 Python面试宝典第17题:Z字形变换

模拟生成法的时间复杂度为O(n),其中n是输入字符串的长度。空间复杂度为O(numRows * m),其中m是字符串s中最长行的字符数。最坏情况下,如果numRows较大且字符串分布均匀,可能需要较大的空间来存储二维数组。模拟生成法直接反映了Z字形的实际构建过程,逻辑清晰,实现直观,易于理解和编码。缺点在于空间效率较低,当numRows很大时,可能会占用较多的空间。一次遍历法的时间复杂度也为O(n),空间复杂度为O(numRows),只需一个大小为numRows的列表来暂存每行的字符。

2024-07-23 06:00:00 1187 26

原创 Python面试宝典第16题:跳跃游戏

动态规划法的时间复杂度为O(n^2),实际上并不高效,特别是内部还有一个额外的循环来检查可达性。其空间复杂度为O(n),因为需要一个额外的数组来存储每个位置是否可达的信息。贪心+最远可达更新算法的效率较高,因为它避免了重复计算,每次迭代都确保了下一步至少有一个可跳到的位置,并且始终尝试最大化下一步的跳跃范围。其时间复杂度为O(n),每个元素只被访问一次。空间复杂度为O(1),只需要常数级别的额外空间来存储几个变量。可以看到,在处理大数据集时,贪心+最远可达更新算法在效率上明显优于动态规划法。

2024-07-22 06:00:00 863 21

原创 孟浩然,山水田园一山人

孟浩然的一生,虽未在官场上留下显赫的印记,却在中国文学史上留下了浓墨重彩的一笔。他的诗作,如同一股清泉,洗涤着后人心灵的尘埃,让人们在繁忙的现代生活中寻得一片宁静与安详。在每一个静谧的夜晚,翻开孟浩然的诗集,仿佛能听到那来自千年前的山水间,传来悠远的吟唱,引领我们回归心灵的家园。

2024-07-22 05:00:00 747 10

原创 陈子昂,革新者的诗意人生

陈子昂的政治生涯虽然短暂且充满挫折,但他那种不畏强权、勇于担当的精神,以及对国家和人民的深切关怀,至今仍为后人所敬仰。作为初唐到盛唐过渡时期的关键人物,陈子昂成为了一个文化符号,象征着文学由华丽转向深沉,由形式至上转为内容为王的转折点。他的文学成就和人生经历,成为了后世文人学习和效仿的对象。

2024-07-19 06:53:19 212 4

原创 Python面试宝典第15题:岛屿数量

可以看到,无论是DFS还是BFS,时间复杂度均为O(M * N),空间复杂度在最坏情况下为O(M)或O(N),取决于地图的具体布局和岛屿的分布情况。其中,M是网格的行数,N是网格的列数。

2024-07-19 06:00:00 1123 16

原创 贺知章,诗酒风流一老翁

贺知章的诗歌以绝句见长,风格清新脱俗,淡中有味,善于在日常生活中捕捉诗意,表达真挚情感。贺知章在书法上的成就同样卓越,其书法风格独树一帜,既有唐人的严谨,又兼具晋人的流润与飞扬,被誉为“与造化相争,非人工所到”。作为“吴中四士”之一,贺知章在文学与艺术领域都有着不可忽视的地位,对唐代乃至整个中国文学史和书法史都产生了重要影响。

2024-07-18 06:00:00 462 23

原创 Python面试宝典第14题:背包问题

使用贪心算法求解本题时,排序操作是时间复杂度的主要来源。假设n是背包的数量,使用快速排序等常见排序算法的平均时间复杂度为O(n*log(n))。遍历排序后的列表,这一过程的时间复杂度为O(n)。因此,总的时间复杂度为O(n*log(n))。除了输入数据外,主要的额外空间用于存储排序后的索引或直接在原地排序,因此空间复杂度为O(1)或O(log(n))。本题使用贪心算法的逻辑直接明了,容易理解和实现。尽管需要排序,但整体时间复杂度相对较低,特别是对于大数据集,排序后的一次遍历即可完成计算。

2024-07-17 06:00:00 845 23

原创 Python面试宝典第13题:最小高度树

广度优先搜索法的时间复杂度为O(n),空间复杂度也为O(n)。广度优先搜索法在处理最小高度树的问题时,既高效又相对节省空间。尤其是在树结构平衡的情况下,队列中的元素数量会远小于n。其时间复杂度和空间复杂度都与树的节点数n成线性关系,这意味着算法的扩展性很好,能够有效处理大规模的树结构。

2024-07-16 06:00:00 513 15

原创 秦观,婉约词坛中的翘楚

秦观在经历了多年的贬谪、漂泊与困苦后,终于在徽宗即位不久获得赦免,得以北归。然而,长期的身心疲惫使他的健康状况严重恶化,不久便去世。尽管生命短暂,秦观留给后世的文学财富却是永恒的。他的词作以情感细腻、意境深远而著称,对后世产生了深远的影响。尤其是在宋代之后的文学发展中,秦观的词风成为许多文人模仿的对象,对宋词乃至整个中国文学史都作出了不可磨灭的贡献。

2024-07-15 08:09:03 124 9

原创 Python面试宝典第12题:消失的数字

以上三种方法均满足时间复杂度O(n)的要求,但三种方法适用的场景各有不同。异或法简单高效,尤其适用于数值范围较大的情况,因为它避免了大数的直接计算。但该方法仅适用于特定场景,特别是当输入数据具备某种对称性时。高斯求和法比较直观,适用于对异或操作不太熟悉的情况。但在数值非常大时,直接计算总和可能会有溢出的风险。哈希法实现直观,易于理解和编码,能够处理更广泛的问题。比如:不仅可以找出缺失的数字,还能应对数字重复或其他更复杂的变异问题。但该方法需要额外的空间来存储哈希表,空间复杂度较高。

2024-07-15 08:06:55 702 16

原创 Python面试宝典第11题:最长连续序列

使用哈希法求解本题时,每个元素仅被访问两次:一次加入哈希集合,另一次作为序列起点检查。遍历和序列扩展操作均在常数时间内完成,故总的时间复杂度为O(n),满足本题的要求。另外,哈希法需要额外的空间来存储哈希集合。最坏情况下,数组中的所有元素都是唯一的,因此哈希集合将存储n个元素,空间复杂度为O(n)。

2024-07-12 08:32:05 1836 33

原创 Python面试宝典第10题:精选选择题

尽管s1初始化时传入了10,但由于SingletonMeta元类的实现,s2的创建覆盖了之前实例的value属性,使得最后的实例(s1和s2相同)的value为20。weakref.ref创建的是弱引用,当对象被垃圾回收后,弱引用不会阻止对象被销毁,访问该弱引用会返回None。s[::-1]是Python中切片操作的一种形式,用于从开始到结束反向取出字符串中的字符,从而实现反转。通过定义str方法,当对象被转换为字符串时,会返回自定义的字符串表示,这里是对象的value值"10"。说法正确的是___。

2024-07-11 06:30:00 864 14

原创 Python面试宝典第9题:买卖股票

使用暴力法时,外层循环遍历每个元素作为买入日,内层循环则从该日起遍历之后的每个元素作为卖出日,故总的时间复杂度是O(n^2),其中n是数组的长度。迭代法只进行了一次遍历,故总的时间复杂度是O(n),其中n是数组的长度。这是一种比较高效的解法,特别是相比于最初的暴力解法,它在处理大数据集时能显著提高效率。

2024-07-10 08:13:34 607 12

原创 柳永,市井生活的吟游者

柳永的词作,以其独特的艺术魅力,对后世产生了深远的影响。首先,他开创了“俚俗化”的词风,使词这一文学形式从宫廷走向民间,扩大了词的受众范围,提高了词的社会地位。其次,柳永擅长运用铺陈、对比等手法,使词的语言更加生动活泼,情感更加丰富细腻,为婉约派词风的确立奠定了基础。最后,他在词的形式上也有所创新,发展了慢词体裁,丰富了词的结构和表现力,对宋代乃至整个中国词史都有着不可估量的贡献。

2024-07-09 07:31:04 980 26

原创 Python面试宝典第8题:二叉树遍历

递归法的时间复杂度为O(n),每个节点被访问一次。空间复杂度最好情况下为O(log n)(此时为平衡树),最坏情况下为O(n)(此时为高度为n的斜树)。递归法的实现直观反映了前序遍历的逻辑,即“根-左-右”,但存在栈溢出、空间复杂度较高等缺点。迭代法的时间复杂度也为O(n),每个节点被访问一次。空间复杂度为O(h),其中h是树的高度。对于平衡树来说为O(log n),最坏情况下(高度为n的斜树)为O(n)。相较于递归法,迭代法使用显式栈管理,空间复杂度更加可控。

2024-07-09 07:27:42 835 10

原创 Python面试宝典第7题:合并链表

在处理链表问题时,迭代法通常较为直接且易于理解,特别是对于合并、排序等操作。通过引入哑节点,我们可以简化代码逻辑,避免对头节点的特殊处理。这种方法不仅适用于两个链表的合并,也容易扩展到多个链表的合并。迭代法的时间复杂度为O(m + n),其中m和n分别是两个链表的长度。这是因为,我们需要遍历两个链表的所有节点来完成合并操作。递归法在处理链表问题时,提供了一种清晰且简洁的解决方案,尤其适合于像链表合并这样可以自然分解为相似子问题的任务。

2024-07-08 06:30:00 1215 25

原创 文天祥,一片丹心照汗青

文天祥的一生,是忠贞报国、英勇不屈的一生。他用自己的生命践行了儒家“杀身成仁,舍生取义”的理想,成为了中华民族不屈精神的象征。在历史的长河中,文天祥的名字如同璀璨星辰,照亮了后世,激励着一代又一代人为了国家和民族的利益而不懈奋斗。

2024-07-08 06:30:00 451 10

原创 Python面试宝典第6题:有效的括号

使用栈结构处理括号匹配问题的时间复杂度是O(n),空间复杂度也是O(n)。在处理括号匹配这类问题时,栈结构是极其高效且直观的选择。它能够自然地处理“后进先出”的特性,完美符合括号匹配的场景。

2024-07-05 08:32:03 1422 31

原创 Python面试宝典第5题:爬楼梯

以上三种方法各有优劣:递归法直观但效率低;动态规划法通过迭代避免了递归调用,空间和时间效率更高;优化后的动态规划法则进一步减少了空间占用。在实际应用中,可以根据具体需求选择最适合的解法。学习了上面的知识后,你真的理解递归算法和动态规划算法了吗?我们为你留了一些课后的拓展作业,快来试一试吧!1、小悦爬楼梯,一次只能上1级台阶,或者2级台阶,或者3级台阶。楼梯一共有n级台阶,请问总共有多少种方法可以爬上楼?2、有长宽分别为1 x 1和1 x 2的小格子,现在要用这两种小格子拼接成1 x N的大格子。

2024-07-04 06:33:23 1465 20

原创 Python面试宝典第4题:环形链表

快慢指针法不需要额外的空间,时间复杂度为O(n),其中n是链表中的节点数量。哈希表法则提供了另一种思路,虽然它需要额外的O(n)空间,但优点是实现直观,易于理解和编码。在实际应用中,如果对空间复杂度有严格要求,推荐使用快慢指针法。如果空间不是问题,而对代码的简洁性和直观性有更高要求,哈希表法也是一个不错的选择。💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。

2024-07-03 08:00:04 943 33

原创 Python面试宝典第3题:石子游戏

暴力法通过递归尝试所有可能的取石子序列来决定胜负,其时间复杂度是指数级别的。具体来说,对于每一步决策,都有两种选择(取左侧或右侧的石子堆),故总的时间复杂度大约为O(2^n),其中n是石子堆的数量。在递归过程中,每一层递归调用都会消耗一定的栈空间来存储函数调用信息。最深的递归深度同样与石子堆的数量n有关,因此空间复杂度也是O(n)。暴力法虽然直观易懂,但对于较大的n值来说,其执行时间将迅速增长至不可接受的程度。动态规划法通过构建一个二维数组来避免重复计算,时间复杂度主要来自于填充这个数组的过程。

2024-07-02 07:01:09 1135 27

原创 杨万里,诚斋体的开创者

杨万里,字廷秀,号诚斋,生于南宋绍兴元年(公元1127年),卒于南宋庆元二年(公元1206年),享年79岁。在中国古代文学的璀璨星河中,南宋诗人杨万里以其清新脱俗、贴近自然的诗风独树一帜,被誉为“诚斋体”的开创者。这位生于江西吉水的文人,一生仕途起伏,却始终保持着对生活的热爱和对自然之美的追求,留下了大量反映民生百态、田园风光的佳作。

2024-07-02 06:57:36 747 4

原创 白居易,心怀百姓的平民诗者

白居易的一生,是诗与道的交响,是对世间百态的深刻洞察,也是对美好生活的不懈追求。他的诗歌,如同一面镜子,映照出唐代社会的风貌,更映射出人性的光辉与幽暗。

2024-07-01 07:46:30 145 18

原创 Python面试宝典第2题:滑动窗口最大值

暴力法的时间复杂度为O(n * k),其中n是数组长度,k是滑动窗口大小。因为对于数组中的每个元素,都需要检查一个大小为k的窗口,这在k较大或n很大时会导致性能问题。其空间复杂度为O(1),除了存储结果的数组外,没有使用额外的空间。双端队列法的时间复杂度为O(n),n的含义同上。虽然每次窗口移动都可能遍历整个队列,但每个元素最多入队和出队各一次,故总的操作次数是线性的。其空间复杂度为O(k),因为在任何时候,双端队列中最多存储k个索引。

2024-07-01 07:44:45 1138 13

原创 Python面试宝典第1题:两数之和

暴力法的时间复杂度为 O(n^2),其中 n 是数组的长度。这是因为:对于数组中的每个元素,都需要遍历其后的所有元素进行求和比较,相当于遍历两次数组。其空间复杂度为 O(1),因为它只使用了固定数量的变量,并没有额外使用与输入大小相关的存储空间。尽管暴力法在小规模数据集上可以接受,但在数据量大时效率极低。哈希映射法的时间复杂度为O(n),这是因为:每个元素只需要遍历一次数组,并且哈希表的查找操作平均情况下接近O(1)。其空间复杂度同样为O(n),因为在最坏的情况下,需要将数组中的所有元素都存储到哈希表中。

2024-06-29 08:41:36 1703 19

原创 李商隐,情丝绕指的朦胧诗人

李商隐,这位唐代的诗魂,用他那如梦似幻的诗句,构建了一个个情感丰富、意境深远的精神世界。在他的笔下,爱情不仅仅是甜蜜与欢愉,更多是无奈与哀愁。千年之后,当我们再次翻开那些泛黄的书页,依然能感受到那份穿越时空的情感共鸣。这就是李商隐,一个永远值得我们细细品味的朦胧诗人。

2024-06-29 08:33:15 254 13

原创 纳兰性德,词坛的忧郁王子

近现代学者王国维在《人间词话》中高度评价纳兰性德,认为他“以自然之眼观物,以自然之舌言情”。意指其作品贴近自然,不加矫饰,情感表达直接而纯粹,这种特质在当时文坛颇为难得。纳兰性德生活在满汉文化交融的时期,他的词作既保留了满族文化的特色,又深受汉族文化影响,成为满汉文化交流的桥梁。他的文学成就展现了满族文人的才华,同时也丰富了整个中华民族的文化内涵。

2024-06-27 08:49:13 489 28

原创 从零开始精通Onvif之常见故障排查

Onvif作为统一标准,在理论上应该能够解决网络视频监控产品之间的兼容性问题。但在实际使用中,仍然会出现各种各样的问题。这些问题可以归纳为以下几个方面:标准实施的差异、版本更新的不同步、测试与验证的不足、硬件与软件的限制、应用环境的复杂性等。下面,我们将对Onvif实际使用和部署过程中出现的常见问题和故障进行介绍。

2024-06-27 08:16:30 679 12

原创 从零开始精通Onvif之加密与认证

安全是Onvif规范的核心部分,它涵盖了加密和认证两大领域。在Onvif标准下,安全措施主要包括:设备访问控制、消息传输加密、以及认证机制,从而确保了视频监控系统中数据传输的可靠性和隐私性。Onvif加密与认证的目的在于:构建一个安全、可靠的网络视频监控和物理安全产品生态系统。通过实施加密与认证机制,Onvif确保了以下几个核心要点。1、互操作性与标准化。Onvif的加密与认证标准使得不同厂家的安防设备能够遵循统一的规则进行安全通信,促进了设备间的无缝集成,降低了因厂商差异导致的兼容性问题。

2024-06-26 07:08:54 563 17

原创 C++ 20新特性之模块

在C++ 20之前,所有的代码组织都依赖于预处理器和头文件。这种方式主要存在以下四个问题:一是大型项目中,相同的头文件会被多次包含,导致编译时间延长;二是头文件之间复杂的相互引用关系难以管理,容易造成编译时错误;三是全局命名空间污染,不同的库可能定义相同的名字,导致冲突;四是修改一个头文件往往需要重新编译所有依赖它的源文件

2024-06-26 07:05:53 909 6

原创 C++ 20新特性之语法糖

C++ 20中引入了一些简化编程工作的语法上的新特性,我们暂且美其名曰:“语法糖”。下面,我们将对这些“语法糖”一一进行介绍。

2024-06-25 07:22:01 943 20

原创 C++ 20新特性之属性的标准化

在C++ 20之前,属性通常是通过特定的预处理指令或编译器特定的语法来实现的。在C++ 20中,属性被纳入了标准,使得它们在不同的编译器之间更加一致,也更易移植。通过属性,我们可以为代码中的实体(比如:类、函数、变量等)添加元数据。这些元数据可以用于各种目的,包括:编译器优化、代码分析、文档生成等。C++ 20中的属性使用“[[ ]]”语法来定义,并且可以与多种实体一起使用。接下来,我们将介绍一些常用的属性。

2024-06-24 06:30:00 737 20

原创 陆游,剑胆琴心照汗青

陆游的诗歌,是其一生经历的真实写照,也是南宋社会历史的生动记录。他的作品涵盖了对国家兴亡的忧思、对个人命运的感慨、对爱情的追忆、对田园生活的向往等多重主题,展现了他作为一个伟大诗人的博大胸怀和深沉情感。陆游的诗歌,不仅在艺术上达到了极高的成就,更因其强烈的爱国主义精神和深沉的人文关怀,成为了中华民族宝贵的文化遗产,激励着后人不断前行。

2024-06-24 06:30:00 117 2

原创 从零开始精通Onvif之音视频流传输

Onvif协议的核心作用之一,是定义了如何通过网络访问和控制IP摄像机和其他视频设备。Onvif协议不仅涉及设备发现、设备管理,还包括音视频流的配置和传输。设备的配置和控制通过SOAP协议实现,而音视频流传输主要基于RTSP协议进行。这一架构使得设备的配置和实时媒体流的传输得以分离,既保证了灵活性,又增强了安全性。如果对RTSP协议感兴趣,可以移步至专栏《从零开始精通RTSP》进行学习。

2024-06-23 10:41:47 1115 5

原创 从零开始精通Onvif之用户管理

用户管理是Onvif协议的重要组成部分,它允许系统管理员通过网络接口创建、删除、修改用户账户,并分配不同的权限,以实现对设备的访问控制。在Onvif标准中,每个用户账户都关联着一组权限,这些权限决定了用户可以访问哪些服务和执行哪些操作。权限通常分为几种类型,比如:admin(管理员)、operator(操作员)、viewer(查看者)等,每种类型的权限集合由设备制造商定义。

2024-06-22 09:20:33 1063 3

原创 关汉卿,元曲大家的戏梦人生

关汉卿的一生,是与戏剧艺术紧密相连的一生。他的戏剧,不仅仅是文学作品,更是时代风貌的镜像。关汉卿以其独特的艺术视角和深邃的人文情怀,书写了属于自己的戏剧传奇,成为中国乃至世界戏剧史上一颗璀璨的明星。

2024-06-21 08:16:10 513 8

IPC库 + 跨平台 + Ingenic芯片方案

专栏《手把手教你封装跨芯片方案的IPC通用库 》地址:https://blog.csdn.net/hope_wisdom/category_12186076.html 专栏《手把手教你封装基于君正芯片方案的IPC库 》地址:https://blog.csdn.net/hope_wisdom/category_12353290.html 1、所有源码严格遵守统一的编码规范。 2、手把手教学,让你从零开始,深入了解君正方案IPC库的方方面面。 3、纯C++接口,接口封装严谨,接口功能丰富,应用层调用简单便捷。 4、近二十年行业经验和技术积累打造的高质量商用级代码,架构清晰合理,便于扩展和维护。 5、绝不空谈概念和原理,实打实地进行源码的展示和要点的讲解。专栏一共15篇,已完结。 6、根据功能模块分章节进行详细介绍,每个章节可独立阅读,让你真正吃透每一个功能模块。 7、通过学习本专栏,你可以深入了解君正底层API、ISP使用、视频采集、音频采集、音频播放、云台电机控制、移动侦测、移动跟踪、人形检测等一系列君正芯片方案相关的专业知识。

2024-06-02

超级好用的C++实用库 + 跨平台 + 通用

对应专栏的地址为:https://blog.csdn.net/hope_wisdom/category_12641233.html 本专栏将介绍一个超级好用的C++实用库,可跨平台(包括:Windows、Linux等桌面操作系统,Android、iOS、鸿蒙等手机操作系统,海思、富瀚微、君正等嵌入式操作系统)使用,内容包括:base64编解码、des加解密、md5信息摘要算法、sha256算法、socket封装类、字节流合成器、字节流解析器、互斥锁、文件类、点阵字体、地理相关接口类、日志类、内存缓冲区类、环形内存池、字符编码转换类、线程基类等。 超级好用的C++实用库的源码

2024-05-23

微信小程序+淘宝客完整源码+PHP后台

微信淘宝客小程序源码是一款专为淘宝客设计的小程序应用,用户可通过小程序便捷搜索、浏览、分享淘宝商品,每成功引导一次购买,淘宝客即可获得相应佣金。核心功能包括: 商品搜索与筛选:集成淘宝联盟API,支持关键词搜索、类目筛选、销量排序、价格区间过滤等精细化查找商品。 商品详情展示:呈现商品图片、价格、销量、评价等详细信息,一键生成专属推广链接或二维码,方便用户分享至微信好友、群聊或朋友圈。 订单跟踪与佣金统计:实时同步淘宝联盟后台数据,展示推广订单状态、预计佣金、结算周期等信息,帮助淘宝客清晰掌握收益情况。 个人中心与设置:用户可查阅账户余额、提现记录,设置收款信息,参与推广任务,接收系统通知等,实现一站式淘宝客运营管理。 社交裂变与营销工具:内置邀请好友、拼团、优惠券等营销插件,鼓励用户邀请新用户注册,提升平台活跃度与用户黏性。

2024-04-27

微信小程序+云商城+PHP后端

技术栈 Codeigniter LeanCloud Bootstrap Admin-LTE jQuery fex-webuploader Codeigniter是一个老牌的php框架,零配置,文档极其丰富。它没有ORM,没有模板引擎,用它,只是因为够用了,LeanCloud自身就是ORM,而PHP天生就是模板语言,所以CI有没有ORM与模板引擎也无所谓。 后台界面,使用了Admin-LTE,它是基于Bootstrap的一套UI,打包了很多现成的组件,菜单目录树,表格,下拉框,颜色选择器,编辑器,日历,报表,聊天窗口。 在登录与修改页面,还用到vue+element-ui

2024-04-27

微信小程序+百货商城源码

百货商城小程序源码是专为移动端设计的商城解决方案,它集成了商品浏览、购物车管理、在线支付、物流跟踪等核心功能。此源码以微信小程序为载体,具有轻便、快捷的特点,便于用户在手机上随时随地进行购物。源码简洁高效,易于商家进行个性化定制,以满足特定的业务需求。通过使用百货商城小程序源码,商家可以迅速拥有一个功能完善的移动端商城,为用户提供便捷的购物体验,从而促进销售增长。

2024-04-27

pyhon小游戏+碰撞检测+贪吃蛇+练手

玩法介绍: 回车键:开始游戏 空格键:暂停 / 继续 运行前,请安装pygame包:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame 贪吃蛇这个游戏很简单,屏幕上随机出现一个点,表示“食物”,上下左右控制“蛇”的移动,吃到“食物”以后“蛇”的身体加长,“蛇”碰到边框或自己的身体,则游戏结束。 我们先来分析一下,要写出这个游戏来需要注意哪些点。 1、蛇怎么表示 我们可以将整个游戏区域划分成一个个的小格子,由一组连在一起的小格子组成“蛇”,我们可以用不同的颜色来表示,如上图中,我以深色表示背景,浅色表示“蛇”。 我们可以用坐标来表示每一个小方格,X 轴和 Y 轴的范围都是可以设定好的。用一个列表来存放“蛇身”的坐标,那么一条“蛇”就出来了,最后只要显示的时候以不同的颜色表示即可。 2、蛇怎么移动? 第一反应就是像蚯蚓蠕动一样,每一个小方块向前移动一格,但这样实现起来很麻烦。一开始就是被这里卡住了。

2024-03-16

Linux常用命令大全(从入门到精通)

在开源世界中,Linux操作系统凭借其稳定、高效和强大的特性赢得了广泛的赞誉。而掌握Linux命令行工具是每位Linux用户必备的基本技能,它能极大地提升系统管理、编程开发、运维部署等方面的工作效率。本文将对Linux的常用命令进行详尽解读,力求覆盖文件操作、系统信息查询、进程管理、搜索查找等多个维度,帮助您构建坚实的Linux命令行使用基础。 一、文件与目录操作 二、文件内容查看与编辑 三、系统信息查询与管理 四、搜索与查找 五、网络相关命令 六、其他常用命令 1. uname:查看系统信息,如uname -a可以输出详细的系统内核信息。 2. whoami:显示当前登录用户名。 3. id:显示用户的UID、GID及附加组信息。 4. pwd:打印当前工作目录路径。 5. top 或 htop:动态显示系统中各个进程的状态信息,包括CPU占用率、内存使用情况等。 6. ps:报告当前系统的进程状态,结合aux参数使用可以获取更多信息,如ps aux。

2024-03-05

音视频领域相关的基础知识

说到视频,大家自己脑子里基本都会想起电影、电视剧、在线视频等等,也会想起一些视频格式 AVI、MP4、RMVB、MKV等等。 但是我们如果认真思考这些应该就有很多疑问,比如以下问题: • mp4 和 mkv有什么区别 ? • 视频封装格式 和 解码格式 有什么区别? • 什么是H.264 ?什么是 mpeg ? 等等很多疑问,我们不知道这些问题的答案是因为我们没有去了解他们背后的东西,下面我会给大家分享当初我学习时候的整理的一些知识。 以下会介绍的内容: 一、光与颜色 二、电视制式 三、照相机与摄像机 四、声音 五、视频相关专业术语 六、视频的构成 七、播放一个网络上视频需要的步骤

2024-02-29

C&C++编程规范(超级实用)

1. 文件结构 1.1 版权和版本的声明 1.2 头文件的结构 1.3 定义文件的结构 1.4 目录结构 2. 程序版式 2.1 空行 2.2 代码行 2.3 代码行内的空格 2.4 对齐 2.5 长行拆分 2.6 修饰符的位置 2.7 注释 2.8 类的版式 3 命名规则 3.1 共性规则 3.2 Windows 应用程序命名规则 3.3 Linux 应用程序函数命名规则 4. 表达式和基本语句 4.1 运算符的优先级 4.2 复合表达式 4.3 if 语句 4.3.1 布尔变量与零值比较 4.3.2 整型变量与零值比较 4.3.3 浮点变量与零值比较 4.3.4 指针变量与零值比较 4.4 循环语句的效率 4.5 for 语句的循环控制变量 4.6 switch 语句 4.7 goto 语句 5. 常量 5.1 const 与#define 的比较 5.2 常量定义规则 6. 函数设计 6.1 参数的规则 6.2 返回值的规则 6.3 函数内部实现的规则 6.4 其它建议 6.5 使用断言 6.6 引用与指针的比较 软件测试系列 7 重载和内联 7.1 普通函数重载 7.2 内联

2024-02-13

软件开发培训之深度学习基本概念和原理

第一阶段: 模拟人类神经元 感知机模型 第二阶段: 分布式知识表达 神经网络反向传播 非线性分类 卷积神经网络 第三阶段: 海量数据 计算性能大幅提升 深度神经网络兴起 一个标准的卷积神经网络,主要包括:输入层(Input Layer)、卷积层(Convolutional Layer)、池化层(Pooling Layer)、激活层(Activation Layer)、全连接层(Fully Connected Layer)、损失层(Loss Layer)。 深度学习框架:Caffe/Caffe2、TensorFlow、MXNet、PyTorch等。 基本原理: 1、神经网络由其权重来参数化。 2、损失函数用来衡量网络输出结果的质量。 3、将损失值作为反馈信号来调节权重。 4、前向传播与反向传播。 5、梯度下降法。

2024-02-13

软件开发培训之如何编写优雅的代码

何为优雅的代码? □ 遵守规范 优雅的代码,首先让人看起来就是很整洁的。而这种整洁,则来源于代码规范。严格地遵守代码规范,是提高且保证代码质量的最有效方法。从个人开发的角度来看,一份良好的代码规范,能够对代码整洁起到指导帮助作用。从多人协作的角度来看,统一的代码规范能够有效减少沟通的阻碍。 □ 逻辑清晰 代码是逻辑的产物。编写代码时,业务相关的逻辑一定要清晰明确,不能模棱两可。除此之外,对于所定义的变量、代码块、数据结构、方法、类、模块等,也要有逻辑地组织它们。 □ 严谨可靠 严谨的代码,才能保证它的可靠性,减少bug的发生几率。一份代码即使严格遵守了代码规范,但思考不全面,逻辑不严谨,到处都是各种漏洞和bug,也不能称之为优雅。 □ 平均来说,一次编写的代码会被阅读十次,所以尽力保持代码优雅是有意义的。当养成习惯之后,你会发现基本不需要花什么力气,更优雅、更具维护性的代码很快就会产生收益。 □ 优雅的代码有助于理解开发语言、模式和架构,也有利于提升开发水平。

2024-02-13

软件开发培训之JavaScript ES6介绍

ES6,全称ECMAScript 6.0,正式名称为ECMAScript 2015,是JavaScript的下一个版本标准,于2015年6月17日发布。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 1997年,ECMAScript 1.0诞生。 1998年6月,ECMAScript 2.0诞生,包含一些小的更改,用于同步独立的ISO国际标准。 1999年12月,ECMAScript 3.0诞生,在业界得到了广泛的支持,它奠定了JS的基本语法。 2000年的ECMAScript 4.0是ES6的前身,但由于这个版本太过激烈,所以暂时被“和谐”了。 2009年12月,ECMAScript 5.0版正式发布。ECMA专家组预计ECMAScript的第五个版本会在2013年中期到2018年作为主流的开发标准。2011年6月,ES 5.1版发布,并且成为ISO国际标准。 2013年,ES6草案被冻结,不再添加新的功能,新的功能将被放到ES7中。 2015年6月,ES6正式通过,成为国际标准。 ES6新特性包括:let关键字、const关键字等。

2024-02-13

软件开发培训之TypeScript简介

□ TypeScript起源于使用JavaScript开发的大型项目。由于JavaScript语言本身的局限性,难以胜任和维护大型项目开发,因此微软开发了TypeScript,使得其能够胜任开发大型项目。 □ TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行于任何浏览器,任何操作系统。 □ 2012年10月,微软发布了首个公开版本的TypeScript。2013年6月19日,在经历了一个预览版之后,微软发布了正式版的TypeScript。 □ TypeScript的作者是安德斯·海尔斯伯格,他也是C#的首席架构师。 TypeScript是一种给JavaScript添加特性的语言扩展,是JavaScript 的一个超集。 具体特性包括:类型批注、接口、装饰器、模块、类、泛型等。

2024-02-13

软件开发培训之如何理解设计模式

□ 设计模式描述了在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该解决方案而不必重复劳动。 □ 设计模式实际上就是类与相互通信的对象之间的组织关系,包括它们的角色、职责、协作方式等方面。 □ 设计模式通常和面向对象编程结合起来使用。面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”是指那些可以满足 “应对变化,提高复用”的设计。 □ 现代软件设计的特征是:需求频繁变化。设计模式的要点是:寻找变化点,然后在变化点处应用设计模式,从而来更好地应对需求的变化。 □ 软件开发是一项实践工作,最直接的方法就是编程。没有从来不下棋却熟悉定式的围棋高手。掌握设计模式是水到渠成的事情,不要强求。随着理论和实践的不断积累,可能会“渐悟”或者“顿悟”。 □ 设计模式解决的是设计不足的问题,但同时也要避免设计过度。一定要牢记简洁原则,要知道设计模式是为了使设计简单,而不是更复杂。如果引入设计模式使得设计变得复杂,只能说我们把简单问题复杂化了,问题本身不需要设计模式。

2024-02-13

软件开发培训之深度学习简介

人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 机器学习(Machine Learning)是指用某些算法指导计算机利用已知数据得出适当的模型,并利用此模型对新的情境给出判断的过程。 深度学习(Deep Learning)的概念源于人工神经网络的研究,它通过组合低层特征形成更加抽象的高层特征,以发现数据的分布式特征表示。 1、深度学习的发展历程。 2、深度学习的应用领域。 3、深度学习的未来展望。

2024-02-13

软件开发培训之64位程序开发注意事项

□ 64位Windows系统下也能运行32位程序,是因为有一个WOW64子系统。它能将32位应用程序的API调用转换成对原生64位系统的调用。正是因为WOW64的存在,32位应用程序在64位系统下并不能发挥最佳的性能,反而比在32位系统下有大约2%的性能损失。如果开发的是64位应用程序,则不需要依赖WOW64运行,并可带来大约5%-15%的性能提升(5%-10%由于采用了64位架构,1%-5%由于未使用WOW64)。 □ 32位程序的最大地址空间是4GB,64位程序的最大地址空间是可以大于4GB的。 □ 64位程序不再区分cdecl、stdcall等各种调用方式。gcc在64位下面,不再支持__attribute((cdecl))__和__attribute((stdcall))__。 □ 64位程序不再使用ESP,而是使用增加的几个64位寄存器,因为ESP不支持64位空间的栈。 □ 虽然在64位Windows系统下可以运行64位和32位进程,但是64位代码和32位代码不能在相同进程上运行。你的代码要么全部是64位,要么全部是32位,要加载的库和组件也要满足这一要求。

2024-02-13

软件开发培训之如何全面思考问题

□ 在软件开发中,对一个问题思考得越全面,编写出的代码就会越严谨,出现bug的几率就越低;反之,如果没有对一个问题进行全面而深入的思考,编写出的代码就会漏洞百出,出现各种莫名其妙、无法复现的bug的几率也就急剧增加。 实例1:输入若干个整数作为数组,将数组中每一个元素除以第一个元素的结果,作为新的数组元素值。 实例2:封装一个函数,用于实现内存拷贝,函数原型如下: void *memcpy(void *dest, const void *src, size_ 实例3:在嵌入式软件开发中,通常将用户的一些选项配置保存到Flash中的特定区域。实际使用时,嵌入式硬件经常会发生异常断电等情况,如果此时正在将选项配置写入Flash,则会导致选项配置数据被损坏。一般采用掉电备份机制来解决该问题,请简要叙述该机制的工作原理。 实例4:蚂蚁爬杆问题。 实例5:我们的模组进行升级时,支持升级uboot、内核、根文件系统和程序。以升级程序为例,我们在升级时的大致流程是什么样的?有哪些需要注意的地方?

2024-02-13

软件开发培训之指针使用注意事项

□ C语言之父丹尼斯·里奇曾说过:“C语言诡异离奇,陷阱重重,却获得了巨大成功!”这句话一方面体现了C语言的灵活性以及广泛的使用,另一方面也体现了C语言的复杂性。在使用C/C++遇到的所有陷阱和问题中,和指针相关的占了绝大部分。 □ C/C++是灵活度和自由度较大的编程语言,指针更是让程序员可以越过安全的栅栏,对某些内存区域进行破坏性访问,从而引发安全风险和严重问题。 □ C/C++的指针是一把双刃剑,为我们带来灵活性的同时,也带来了各种各样的问题(使用不当的话)。有人曾统计过,C/C++程序员处理的所有bug中,有一半是由指针引起的bug。可想而知,指针中包含的陷阱是多么可怕。 □ 要想在编写代码的时候尽可能避免指针带来的各种陷阱和问题,就需要知道不恰当地使用指针到底会引发哪些问题, 为什么会引发这些问题,以及如何去解决这些问题。 1、使用空指针 2、使用指向随机内容的指针 3、使用野指针 4、不恰当的指针声明 5、访问指针越界或溢出 6、内存泄露

2024-02-13

软件开发培训之结构体使用注意事项

1、结构体变量初始化。 (1)顺序初始化。 (2)指定初始化。 (3)构造函数初始化。 2、结构体变量赋值。 3、结构体对齐,包括: (1)字节对齐。 (2)协议设计中的字节对齐。 (3)Win32平台下的微软C编译器的对齐策略。 (4)GNU GCC编译器的对齐策略。 (5)含位域的结构体对齐。 (6)字节对齐测试。 (7)结构体对齐总结。

2024-02-13

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

TA关注的人

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