- 博客(47)
- 收藏
- 关注
原创 leetcode - 890. 查找和替换模式
写两个哈希表:words->pattern, pattern->words,当映射对不上时,说明不对。
2023-03-14 21:44:38
259
原创 leetcode - 2120.执行所有后缀指令
坑: ①while循环条件:不写index < len 会 buffer-overflow ②while拦截了走超边界,但没拦住已经走超了但是可执行指令数多增加了一个,所以需要在走完后,indeNum++前 检查一下row 和 col是不是已经超了。遍历从每个指令开始走的情况,把方向指令翻译成坐标变化,只要不超过范围以及指令走完,就给可执行指令数++。
2023-03-14 21:44:18
304
原创 LeetCode - 523 连续的子数组和
题目思路这题暴力解法是遍历所有的子数组以及计算其和,每次判断是否符合条件(是K 的倍数),但这种做法会超时,需要优化。如果事先计算出数组 numsnumsnums 的前缀和数组,则对于任意一个子数组,都可以在 O(1) 的时间内得到其元素和。用 prefixSums[i]prefixSums[i]prefixSums[i] 表示数组 numsnumsnums 从下标 0 到下标 i 的前缀和,则 numsnumsnums 从下标 p+1p+1p+1 到下标 qqq(其中 p<q)的子数组的长
2022-05-27 10:57:15
165
原创 项目中git操作步骤
在接到一个新任务后,首先需要将自己当前的本地代码更新到当前最新版本:git checkout origin/master验证是否进入远端主干分支:git log看历史信息 和小乌龟(TortoiseGit)上 git log 里 origin -> master 的 tree 节点信息是否一致;更新远端主干代码:git fetch // git fetch origin/master将远端主干分支的变动迁移到个人开发的分支上:(附:merge 和 rebase 的区别:h
2022-05-25 11:42:09
171
原创 LeetCode - 560 和为k的子数组
题目思路利用前缀和,由于 pre[i]=pre[i−1]+nums[i]pre[i] = pre[i-1] + nums[i]pre[i]=pre[i−1]+nums[i],则任意一段和为 k 的子数组可以表示为 pre[i]−pre[j]=k=>pre[i]=pre[j]+kpre[i] - pre[j] = k => pre[i] = pre[j] +kpre[i]−pre[j]=k=>pre[i]=pre[j]+k;由于不同段的子数组可能出现不同的和,也有可能出现重复
2022-05-24 14:07:06
103
原创 LeetCode - 901.股票价格跨度
题目思路①默认代码里需要自定义结构体、初始化、功能以及内存释放,故在结构体定义里可以同时定义好单调栈和一个用来记录当前结果的数组,以及栈顶指针;则在初始化里可以为存结果的数组申请内存,以及将栈顶指针初始化为 -1;②在实现中:因为题目要找比当前小的股票价格(即以当前价格为基础,往前查找,如果找到比当前小于或等于的价格,则计入天数),故使用单调递减栈。栈顶指针永远指向当前找到的最大的元素(价格),当遇到比栈顶更大的元素时,则认为栈顶以及栈顶之前的元素都找到了答案(可以计算这些元素的价格跨度了),故将这些
2022-05-23 14:10:42
256
原创 LeetCode-739.每日温度
完整程序:#include<stdio.h>#include<stdlib.h>//int *result;/** * Note: The returned array must be malloced, assume caller calls free(). */int* dailyTemperatures(int* temperatures, int temperaturesSize, int* returnSize){ int *result.
2022-05-17 11:03:35
225
原创 数据结构学习(四) -单链表的合并
需要用到三个指针:指针 pa 用于扫描单链表 La,pb 用于扫描单链表 Lb,pc 用于指向新生成合并链表Lc的当前表尾结点。合并操作通过这三个指针的变化来完成:每次比较两个链表的相应元素,使pc不断指向较小(大)的元素。
2021-12-30 10:55:08
1939
原创 数据结构与算法分析学习(一)
学习记录:MOOC-数据结构-华中科技大学 + 《Data Structure and Algorithms in Python - Michael T. Goodrich, Roberto Tamassia etc.》线性表顺序结构在C语言中的定义线性表的静态分配,动态分配插入、删除节点
2021-12-27 10:30:58
438
原创 DevOps软件架构师行动指南(五)
DevOps: A Software Architect`s PerspectivePART 3 横切关注点7. 监控为什么监控,监控什么,如何监控
2021-12-16 11:03:59
2598
原创 DevOps软件架构师行动指南(四)
DevOps: A Software Architect`s Perspective6. 部署6.1 部署管理的策略6.1.1 蓝/绿部署6.1.2 滚动升级6.3 逻辑一致性6.3.1 相同服务的多个版本同时存在6. 部署部署的总体目标:对系统用户产生最小影响的情况下,将服务的升级版本投入生产环境中,这些影响可能是失败或者停机时间。6.1 部署管理的策略两个常用策略:蓝/绿部署 和 滚动升级。这两在成本及复杂性上有所不同,成本包括虚拟机费用以及虚拟机中运行软件的许可费用。讨论策略前的假设:当
2021-12-13 10:53:03
781
原创 DevOps软件架构师行动指南(三)
DevOps: A Software Architect`s Perspective5. 构建与测试概述5.2 在部署流水线中移动系统5.3 横切关注点testing brings errors, errors bring understanding. —— Burt Rutan5. 构建与测试概述用于支持开发和部署的基础设施应支持以下需求:团队成员可以并行地在系统的不同版本上工作;若一个团队成员突然离开团队,该团队工作不会丢失;团队成员的代码易
2021-12-08 11:21:36
708
原创 堆、栈、队列、各种变量(静态、动态、全局、局部)的区别和联系
堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。堆 (heap)堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式类似于链表。栈 (stack)栈(操作系统):由操作系统(编译器)自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。栈 是操作系统 在 建立某个进程时或者
2021-12-06 09:08:52
1138
原创 Linux C-学习笔记(二)
为熟悉对Linux C的基本操作,阅读书籍《Linux C编程从入门到实践-程国刚等》与《Linux C从入门到精通-明日科技》,此为学习笔记。(四到六章)
2021-12-06 08:34:28
212
原创 关于yum安装与更换镜像源
[root@localhost Downloads]# rpm -qa | grep yumyum-3.2.29-40.el6.centos.noarchyum-metadata-parser-1.1.2-16.el6.x86_64yum-plugin-security-1.1.30-14.el6.noarchPackageKit-yum-plugin-0.5.8-21.el6.x86_64yum-utils-1.1.30-14.el6.noarchyum-plugin-fastestmirro
2021-11-30 19:33:15
1716
原创 DevOps软件架构师行动指南(二)
DevOps: A Software Architect`s Perspective 4. 整体架构4.1 DevOps实践是否需要架构调整4.2 架构结构总览4.2.1 协作模式4.2.2 资源管理4.2.3 架构元素之间的映射4.3 微服务架构的质量4.3.1 可靠性4.3.2 可修改性4. 整体架构4.1 DevOps实践是否需要架构调整从DevOps实践的五个分类来看:将运维的需求(可能是在日志、监控和支撑事故处理等领域上)纳入系统、确保开发更多的负责相关事故处理、要求所有人员执行部署过程这三
2021-11-27 10:47:33
944
原创 校招刷题笔记
1. 单词倒排import sysimport re#r = re.compile("[\W+]")for line in sys.stdin: #print (type(line)) #print (line) list_1 = re.split(r"[^A-Za-z]",line.strip()) if (len(list_1) ==1): list_1 = line.strip().split(" ") print(' '.join(
2021-11-14 10:06:19
150
转载 Linux C - Makefile (一)
本文为Makefile学习笔记,知识点根据个人需要摘取、总结,来自 http://c.biancheng.net/makefile/。Makefile1. Makefile 文件是什么?Makefile 可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。Makefile 可以使得我们的项目工程的编译变得自动化,不需要每次都手动输入一堆源文件和参数。编译的时候 gcc 只会默认链接一些基本的C语言标准库,很多源文件依赖的标准库都需要我们手动链接。在编译的时候命令会很长,并且在
2021-11-07 09:56:03
192
原创 Linux C-学习笔记(一)
为建立对Linux C的基本概念,阅读书籍《Linux C编程从入门到实践-程国刚等》与《Linux C从入门到精通-明日科技》,此为学习笔记。1. Linux 基础1.1 起源与发展计算机系统由硬件系统和软件系统组成,软件系统的基础为操作系统。Linux系统基于GPL协议发布,该协议是GNU项目所创立开放源代码的公共许可证。GUN (GNU`s not Unix) 是一个项目。该计划最初目标是开发一个软件丰富且可以自由使用的软件库 / 类unix操作系统,其开发出了GCC编译器、Emacs编辑器等
2021-11-01 10:49:23
567
原创 5G Bandwidth 38.101/104
Operating bands and channel arrangement (TS38.104 chap 5)5.1 General在5G NR中,定义了两种频段范围,FR1和FR2,FR1表示低频频段,FR2表示毫米波高频频段。具体FR1和FR2表示的频段范围如下表所示:5.2 Operating Bands工作带宽是指在NR中有编号的、实际规定了上下频率边界的一段频带。在5G NR中之所以规定这么多的工作带宽,是为了兼顾全球范围内不同国家、不同运营商之间所分配的频谱资源,以及支持的不同
2021-10-27 15:09:12
582
原创 Data Networks (Dimitri.P) - 阅读笔记
阅读与摘抄chap1, 3, 5.Chapter1. Introduction and Layered Network Architecture
2021-10-27 15:07:28
357
原创 DevOps软件架构师行动指南(一)
此为个人《DevOps软件架构师行动指南-Len Bass, etc》阅读笔记。DevOps 是一项运动,他设想在开发组和运维组之间没有冲突。1. DevOps 是什么1.1 定义DevOps 是一套实践方法,在保证高质量前提下缩短系统变更从提交到部署至生产环境的时间。在部署对系统的变更时(一般是代码形式),质量很重要。保证质量的方式:一在把修改后的代码放到生产环境前必须跑通各种自动化测试用例;二在把变更对外开放之前,先让一小部分用户对生产环境的变更进行测试;三对新部署的代码密切监控一段时间
2021-10-24 14:40:10
1031
1
原创 软件工程基础
1. 概述1.1 定义软件工程围绕软件开发、维护、管理、质量保证等一系列活动展开。IEEE:软件工程首先是将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护(将工程化方法应用于软件),其次是与上述有关的方法。软件由程序、数据和文档组成。具体说,英国软件工程专家 Ian Sommerville 认为软件是个系统,由若干程序、用于建立这些程序的配置文件、描述系统结构的系统文档、解释如何使用系统的用户说明文档以及供用户下载最新产品的站点组成。1.2 分类按作用分:系统软件:由生产厂家配
2021-10-17 10:50:41
420
原创 5G-SS/PBCH Block
BackgroundUE 接入NR network: ①小区搜索 -> ②获取小区系统信息 -> ③随机接入① 通过同步信号 PSS/SSS,获取小区的 physical_cell_id (PCI),下行频率同步② 通过PBCH,获取系统信息MIB,以及如何接收其他SIB1的信息,下行时间同步获取小区下行 timing信息(sfn, subframe0位置③ 实现上行同步在①②过程中,同步信号PSS/SSS,PBCH以及其关联的DMRS 被配置在 称为“SS/PBCH block”
2021-08-03 15:33:34
3584
2
原创 C++阅读笔记:CppPrimer
阅读笔记:CppPrimerChap 1: Introduction1.1 Components1.2 Input & Output1.3 Comment本文旨在记录个人阅读书籍 CppPrimer 时摘下的知识点,前篇皆为基础概念。Chap 1: Introduction1.1 Components操作系统通过调用main函数来执行 C++程序。一个函数的定义包括四部分:返回类型(return type) 函数名(function name) 形参列表(parameter list)
2021-07-16 14:42:19
923
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人