c/c++

橘颂TA6 小时前
算法·c/c++·结构与算法
【剑斩OFFER】算法的暴力美学——判定字符是否唯一我们可以用位图的思想来解决这道题:找一个32位比特位的数字,这32个比特位用来表示字符是否存在,例如:000000.....0000 假设有个字符 a,如果位图的第 a - a 个位置,也就是第 0 个位置是否为 0 ,如果是0,就把这个位置改成1,表示 a 这个字符是存在的,假设再出现出现一个字 a ,我们也还是判断第 a - ’a' 这个位置是否为0,此时是不为0,所以我们返回 false ,因为字符重复了。
橘颂TA5 天前
算法·c/c++·结构与算法
【剑斩OFFER】算法的暴力美学——矩阵区域和我们一看题目就知道使用二维数组的前缀和来解决这道题目。所谓二维数组的前缀和就是某个二维数组某个区域的和:https://blog.csdn.net/2403_84958571/article/details/154848877?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
橘颂TA10 天前
算法·c/c++·结构与算法
【剑斩OFFER】算法的暴力美学——二维前缀和一般来说我们遍历数组来进行求和,但是这种时间复杂度太高了:假设我们查找q次区域内和,最差的情况下我们要遍历完整个数组,所以我们的时间复杂度为:O(q * n * n);
橘颂TA11 天前
数据结构·算法·力扣·c/c++
【剑斩OFFER】算法的暴力美学——寻找峰值这道题和山脉数组的蜂顶索引的解法几乎一样,只不过除了left 和 right 的取值不同罢了,因为在这道题目中有些特殊的例子如【 2,1】 返回0,一般来说有峰顶的数组的数字至少要三,所以这里我们可以把这到题目看成是求这个数组里面的最大值,有因为假设有两个峰顶,当我们的中间落在峰顶的旁边时,我们只要求这个峰顶就行,因为题目说只要求其中一个就行不是吗?
橘颂TA11 天前
算法·leetcode·职场和发展·c/c++
【剑斩OFFER】算法的暴力美学——山脉数组的蜂顶索引首先我们我们观察一下数组里面的数字的排列的规律:在没遇到蜂顶元素时,前面的数据的是依次变大的,而蜂顶的元素后面的数字是依次递减的,我们可以把蜂顶的元素归于这其中的一类,故而如上图一样。
橘颂TA12 天前
数据结构·算法·leetcode·c/c++
【剑斩OFFER】算法的暴力美学——点名当我们看到这道题目时,我们一般是直接从题目给出的数组来找这些数字的规律,题目给出的数字的除了这些数字是逐渐递增的,就没了。所以我们不防从把数组的下标写出来,此时我们可以看到数组的数字和下标相等时,代码没有数字缺少,反之就是缺少一个数字;从数组的下标结合题目给出的数组来看,只要找缺少数字的那小部分的数组的最左边就是缺少的那个数字,当然缺少的不是上面绿色部分的8而是他的下标7。
huangyuchi.12 天前
linux·网络·udp·网络通信·c/c++·socket编程·简单聊天室
【Linux网络】基于UDP的Socket编程,实现简单聊天室前言:上文我们讲到了,基于UDP的Dict Server的Socket编程。【Linux网络】Socket编程实战,基于UDP协议的Dict Server-CSDN博客
阿源-14 天前
嵌入式·c/c++
C语言编译过程 & ELF文件加载过程解析bin 文件通常用于嵌入式裸机程序的烧录,elf 可执行文件通常运行在操作系统之上。bin 是扁平的二进制文件,没有任何说明,它假设加载它的环境(如嵌入式引导程序,BootRom)已经预先知道了代码存放的地址,代码的入口,数据段,代码段的地址。大家如果烧录过嵌入式裸机程序应该有所体会。
_OP_CHEN14 天前
电赛·c/c++·嵌入式开发·瑞萨mcu·声源定位·嵌入式应用·嵌赛
基于瑞萨 RA6M5 开发板的声源定位系统设计与实现前言一、项目概述1.1 项目背景与意义1.2 核心功能与技术指标1.2.1 基础功能1.2.2 扩展功能
阿源-16 天前
嵌入式·c/c++
嵌入式面试中常见的一些编程题目注:本文只是代码实现,并没有深入讲解实现原理,大家可以看一下主要会考什么,然后再具体针对性了解原理,也更有利于理解。
计算衎17 天前
开发语言·elf·gcc·c/c++·a2l
.c .o .a .elf .a2l hex map 这些后缀文件的互相之间的联系和作用.a 文件 —— 在 C/C++、ECU、嵌入式开发等领域都经常出现,但它的含义和作用要分清楚。 我给你讲清楚它在不同场景下的含义(尤其是和 .elf、.a2l、.o 的关系)。
橘颂TA17 天前
算法·leetcode·面试·职场和发展·c/c++
【剑斩OFFER】算法的暴力美学——二分查找从题目的要求我们可以看出这道题是有二段性的性质的,所谓的二段性:在一段区间内根据数据的规律可以把这个区间分为两个区间;所以我们使用二分查找算法来解决这道题:
橘颂TA18 天前
算法·c/c++·就业
【剑斩OFFER】算法的暴力美学——最小覆盖字串思路:滑动窗口 + 双哈希表我们可以统计 t 中每个字母的种类,不是个数,当我们遍历的 s 字符串时,我们也要定义一个 count 来记录符合 t 的有效字符,当 hash_s[ A ] == hash_t[ A ] ,count++,当 count == t 中每个字母的种类时,此时就是符合要求的字符串,但是我们要长度最小的字符串,所以我们还要定义两个变量:begin:有效字符串的起始下标,minlen :最小的有效字符串的个数;当 count == t 中每个字母的种类时,我们就要更新 begin 和
橘颂TA19 天前
数据结构·算法·c/c++
【剑斩OFFER】算法的暴力美学——串联所有单词的字串我们可以看上面这个例子,我们记录s数组每个字母的个数,假设s数组在一段区间内的a、b、c的个数都为1,而和我们目标数组word的每个字母的个数相同,那么无论s数组的这段区间的a、b、c字母怎么排列都是我们目标的数组。
安全二次方security²22 天前
nvidia·cuda·c/c++·device·cuda编程·architecture·compute unified
CUDA C++编程指南(1)——简介AI-安全-功耗 CUBE 博客目录导读目录1. 简介1.1. 使用GPU的优势1.2. CUDA®:通用并行计算平台与编程模型
Qt程序员25 天前
c++·c++设计模式·c/c++·c++虚函数
C++ 虚函数的使用开销以及替代方案1.1、虚函数的定义与本质虚函数是 C++ 实现动态多态的核心机制,其本质是通过运行时绑定实现 “基类接口、派生类实现” 的设计思想。在基类中用virtual关键字声明,派生类通过override关键字显式重写(C++11 起),需满足函数签名完全匹配(含参数类型、const/volatile 限定符、返回值类型,协变返回类型除外)。
橘颂TA1 个月前
开发语言·qt·c/c++·界面设计
【QSS】软件界面的美工操作——Qt 界面优化目录一、概述二、设置全局样式三、样式代码和C++代码分离四、选择器五、子控件选择器六、伪类选择器七、样式属性
橘颂TA1 个月前
linux·运维·服务器·c/c++
【Linux】 层层递进,抽丝剥茧:调度队列、命令行参数、环境变量目录编辑一、Linux2.6内核进程O(1)调度队列二、命令行参数三、环境变量前言:⏩️Linux2.6内核采用O(1)调度算法,通过双优先级队列(active和expired)和位图操作实现高效进程调度。每个CPU维护runqueue结构,包含140个优先级队列,普通进程优先级映射为100-139的数组下标。调度时通过位图快速定位最高优先级进程,最多遍历5次即可找到。双队列机制通过交换active和expired指针解决进程饥饿问题。命令行参数和环境变量是进程重要属性:argv数组存储命令参数,环境变量
Qt程序员1 个月前
c++·线程·c/c++·原子操作·无锁编程
基于原子操作的 C++ 高并发跳表实现在高并发的多线程编程中,传统的锁机制(如 std::mutex)常常成为性能瓶颈。锁竞争会导致线程阻塞、上下文切换开销增加,甚至引发死锁问题。为了解决这一问题,无锁编程(Lock-Free Programming)逐渐成为主流方案。通过 原子操作(Atomic Operations)和 跳表(Skip List)的结合,避免了显式锁的使用,能真正实现多线程并行访问,是解决高并发场景下有序数据结构性能问题的核心方案。
程序员老舅1 个月前
c++·c/c++·值传递·引用传递·指针传递·参数传递机制
C++参数传递:值、指针与引用的原理与实战在C++编程中,函数参数传递看似是基础操作,却藏着不少影响代码性能、安全性的关键细节 —— 新手常困惑 “值传递为啥改不了原变量”,老手也可能在 “指针 vs 引用” 的选择上踩坑。