LeetCode 第241场周赛
GG 5759. 找出所有子集的异或总和再求和 模拟题目 二进制枚举所有集合 计算每个集合的异或和, 最后加起来就好 123456789101112131415class Solution {public: int subsetXORSum(vector<int>& nums) { int n = nums.size(); int ans = 0; for(int i=1;i<(1<<n);i++) { int tmp = 0; for(int j=0;j<n;j++) { if(i>>j&1) tmp ^= nums[j]; } ans += tmp; } return ans; }}; 5760. 构成交替字符串需要的最小交换次数 模拟就好, ...
LeetCode 第52场双周赛
GG 5742. 将句子排序 简单模拟, 用py实现的,方便点。 123456class Solution: def sortSentence(self, s: str) -> str: sl = s.split(' ') sl.sort(key=lambda x: x[-1]) return ' '.join([s[:-1] for s in sl]) 5743. 增长的内存泄露 简单模拟 123456789101112131415161718class Solution {public: vector<int> memLeak(int memory1, int memory2) { int cnt = 0; int i=0; for(i=1;memory1 >= i || memory2 >= i; i++) { if(memory1 >= memory2) ...
Redis 学习 基础数据结构篇 之 跳表(skiplist)
[TOC] 基于 Redis 6.2.1 参考资料: https://www.jianshu.com/p/9d8296562806 画图工具是真的难用啊, 找不到好用的工具。。。 跳表 跳表(skiplist)是一种有序的数据结构,它通过在每个节点中维护多个指向其他节点的指针,从而达到快速访问的目的。 跳跃表支持平均O(logN)O(log N)O(logN), 最坏O(N)O(N)O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。 跳表的数据结构 跳表既然是叫什么什么表,那么本质上还是链表。下面先看一下普通单链表的结构: 图片graphviz源码 展开/收起 12345678910111213141516171819digraph link { rankdir = LR; //让图片横过来 node[shape = record]; //record形状是专门用来做类似”结构体“的东西的 1[label = "{1|}"];//每个的'|'都是一列 2[label = " ...
LeetCode 第51场双周赛
GG 5730. 将所有数字用字符替换 简单模拟题目 123456789class Solution {public: string replaceDigits(string s) { for(int i=0;i<s.size(); i+=2) { s[i+1] = s[i]+(s[i+1]-'0'); } return s; }}; 5731. 座位预约管理系统 数据结构题, 维护一个set就可以了 123456789101112131415161718class SeatManager { set<int> s;public: SeatManager(int n) { s.clear(); for(int i=1;i<=n;i++) s.insert(i); } int reserve() { in ...
Redis 学习 基础数据结构篇 之 dict
[TOC] 基于 Redis 6.2.1 dict(字典) 字典, 又称符号表(symbol table)、关联数组(associative array)或者映射(map), 是一种用于保存键值对(key-value pair)的抽象数据结构。 在字典中,一个键(key)和一个值(value)关联,关联上的键和值被称为键值对 很多语言都提供了字典的实现,如C++ STL中的map,python中的dict,Go中的map等等。C语言中并为提供字典实现,因此Redis自行实现了字典。 Redis中很多地方用到了字典,Redis的数据库,HASH类型等。 dict的实现 src/dict.h 中定义了字典 1234567// hashtable 哈希表结构typedef struct dictht { dictEntry **table; // dictEntry 二维指针, 被当成指针数组用的。 unsigned long size; // 哈希表容量大小 unsigned long sizemask; // 等于size-1, 方便 ...
Redis 学习 基础数据结构篇 之SDS
[TOC] 这篇文章基本是抄来的。 好不要脸啊我。 带有空还是要自己整理一下。 基于 [Redis 6.2.1](redis/redis at 6.2.1 (github.com)) SDS Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型, 并将 SDS 用作 Redis 的默认字符串表示。 Redis 中除了字符串字面量,当作常量使用的地方用了C语言传统字符串。 其他可以想见的涉及到字符串的东西都是用SDS实现的。 redis 3.2 版本更新了 sds 2.0, 本文简单总结下sds1.0,再总结下sds2.0. SDS 1.0 SDS 1.0 内容copy 自 《Redis 设计与实现(第二版)》 sds1.0 定义 每个 sds.h/sdshdr 结构表示一个 SDS 值: 12345678910111213struct sdshdr { // 记录 buf 数组中已使用字节的数量 // ...
Redis 学习
[TOC] 准备好好学习下redis了 《Redis 设计与实现(第二版)》 redis-3.0.0 带中文注释代码 redis 最新版代码 准备跟书看,同时对比下最新版代码,最后运行调试看下。 博客还不知道会不会更新。。。。 环境安装 我个人习惯用vscode。 C/C++ 开发环境这里不展开了,参考这个搞下就行了 简单配置下就可以断点调试了 .vscode/launch.json 12345678910111213141516171819202122232425{ "version": "0.2.0", "configurations": [ { "name": "(redis-6.2.1) 启动", "type": "cppdbg", "request": "launch", ...
StudyGolang
中文:在线入门指引 http://go-tour-zh.appspot.com/basics/1 中文:文档首页 https://go-zh.org/doc/ 中文首页 https://go-zh.org/ 英文首页 https://golang.org/ Go 中文主页 先把这个教程看完 - Go 指南 然后就去写代码 完毕 go 语言常用的一些代码 (刷题 自定义排序 [【Go语言】基本类型排序和 slice 排序](https://itimetraveler.github.io/2016/09/07/【Go语言】基本类型排序和 slice 排序/) 123456789101112131415161718192021222324252627282930313233343536373839404142package mainimport ( "fmt" "sort")type Person struct { Name string Age int}// 按照 Person.Age 从大到小排序t ...
终于用上MBP了
[toc] MacOS 真香! 公司给发了个 MacBook Pro 然后就基本告别 Manjaro 了, 这里介绍下使用 osx 的一些体验 安装包管理器 homebrew mac 的软件包管理器, 一般好用吧, 用过 pacman 感觉其他的都不太行 1/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 123456# 换清华源 https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"for tap in core cask{,-fonts,-drivers,-versions} command-not-found; do brew ...
python import
未完待续 python import研究 `python`用了好久了, 对它的`import`规则一直都很懵,借此机会梳理下. 首先是导包. 导入同目录下的包, 或者安装好的第三方模块, 或者python自带的模块 1import module_name 导入当前目录中某一文件夹里面的python模块 1from dir import module_name