logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

经典算法实例:旋转字符串(二)

首先,如果 s 和 goal 的长度不一样,那么无论怎么旋转,s 都不能得到 goal ,返回 false。字符串 s+s 包含了所有 s 可以通过旋转操作得到的字符串,只需要检查 goal 是否为 s+s 的子字符串即可。时间复杂度:O(n) ,其中 n 是字符串 s 的长度。KMP 算法搜索子字符串的时间复杂度为 O(n) ,其他搜索子字符串的方法会略有差异。空间复杂度:O(n) ,其中 n

文章图片
#算法
一文读懂:通俗易懂的KMP算法详解

KMP 算法的计算过程启发的过程:上面的暴力方法是基于这样的一个尝试的思路,如果 s 中有一个子串和 p 是匹配的,因为任何一个子串都有一个开头位置,那么这个和 p 匹配的子串当然也有一个开头位置,又因为我们不知道哪个开头位置的子串和 p 是匹配的,因此我们尝试所有可能的开头。这样的查找方法,在遇到 s = “aaaaaaaaaaaaab”,p = “aab” 这样的情况的时候,会使得 p 只有在

文章图片
#算法
为何大小公司都在争相开发AI Agent?

二者的核心差异在于能力范式的根本不同。大语言模型的本质是静态的知识库与模式匹配器,它擅长在信息世界中进行应答、推理与生成,但与其的交互止于对话界面,是“思想的巨人,行动的矮子”。它不仅能理解你的意图(比如安排一次家庭旅行),还能将你的意图自动拆解为可执行的子任务(查机票、对比酒店、做攻略),并自主调用 API、操作软件、访问网络去完成物理或数字世界的实际动作。如你所知,从“百模大战”到“Agent

文章图片
#人工智能
认识Python网络套接字编程

最简单的协议就是应用层的协议,例如 HTTP、FTP、telnet 等。我们来思考这样一个问题:计算机 A 想要向计算机 B 发送消息,计算机只是一台机器,又没长眼睛,如何能够准确地把消息传递给计算机 B 呢?各位读者不妨联想一下点外卖的场景,我们在下单之前,一定要把收货地址写得准确无误,这样外卖骑手才能根据地址将外卖送到你的家门口。如大家所了解的,在网络通信的底层架构中,套接字作为信息传输接口扮

文章图片
#网络
在C++中不用宏怎么打日志的使用建议

当我们再项目中不断打印这些数据的时候,若不及时删除,则会出现洪水般的日志信息,这些信息可能由于不同开发者的风格不通用,难以跨文件删除或屏蔽,使得给后期开发增加了不必要的麻烦。但是由于使用的方式一般是以默认参数进行的,因此不是适合变参的情况,除非在外部传入 std::source_location::current(),这一定程度上限制了使用。最后,这里介绍一些知名的开源日志库,这些库大都比较成熟,

文章图片
#c++#算法#开发语言
认识Python数据包套接字

数据包套接字也使用 IP 协议作路由,但是它不使用 TCP 协议,而是使用 UDP 协议(User Datagram Protocol,用户数据报协议)。实际应用中,QQ 视频聊天和语音聊天主要使用 SOCK_DGRAM 来传输数据,因为首先要保证通信的效率,尽量减小延迟,而数据的正确性是次要的,即使丢失很小的一部分数据,视频和音频也可以正常解析,最多出现噪点或杂音,不会对通信质量有实质的影响。注

文章图片
#网络
C++ 中函数对象的形式概述

我们都知道对象类型和函数类型是 C++ 中的两种不同类型。而当一个对象可以像函数一样进行调用时,这个对象就是函数对象。最简单的例子就是在 C 语言中非常常见的函数指针,这个就是一个非常典型的函数对象。而到了 C++ 中对函数对象做了进一步的扩充。

文章图片
#c++#开发语言
熟练掌握Python,可数据结构和算法还是很难?

只有通过大量的练习,才能逐渐熟悉常见的数据结构和算法技巧,从而更快地解决问题。而且如果是才开始接触力扣上的数据结构和算法题,出现困惑是很正常的,因为还不够熟悉这个模式。独立思考能力是指能通过自己的思考找到该题目的解决方案或从不同的角度(多个解法)来尝试解答该题目。不是说不能参考别人的解法,而是每次通过学习别人的解法,能把其中的知识转化为自己的,这才是最重要的一点。完全理解题目需要的是深入理解问题的

文章图片
#数据结构
关于C++中的placement new

可见构造函数调用了两次,析构调用了一次,且地址均相同。这就是对原始位置的操作。有了这一特性,能够非常方便的编写内存池以优化空间。通常 new 操作是去向堆空间申请一块区域,而原位构造指的是在给出的指定目标进行构造。初学者可能从来没听说过什么是 placement new。在国内有些地方会翻译为。

文章图片
#c++#算法#数据结构
C++20的jthread使用基础及实例分析

让我们回到C++编程中,在传统的 C++ 编程时(C++11 前)并没有统一的多线程编码标准。通常在 Linux 平台中使用 <pthread.h> 库,在 Windows 的 <windows.h> 也有一套自己的方式。自 C++11 起 C++ 标准统一了多线程的编码方式,即规定了标准头文件 <thread>。需要注意一下将 std::thread 的构造 using 到子类,并注意其析构是非

文章图片
#jvm
    共 25 条
  • 1
  • 2
  • 3
  • 请选择