精选分类

文章列表

一.DS-ponzi论文介绍区块链的 Web 3.0 应用的兴起(例如 DeFi)既给金融领域带来了机遇同时也伴随着相关风险。在这些风险中,智能合约内的庞氏骗局尤为突出。庞氏骗局智能合约是一种数字协议,旨在模仿传统的庞氏骗局,通过使用后期投资者的资金来向早期投资者承诺高额回报,最终在新的投资未能覆盖支付时崩溃。根据 TRM Labs...

一.LCS算法1035. 不相交的线以这道题为例,明显就是一个求1143. 最长公共子序列 - 力扣(LeetCode)的题目 递推公式看代码10-15,如果需要找到所有可能得路径可以反向dfs class Solution { public: int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) { int n = nums1.size(); int m =...

一.KMP算法28. 找出字符串中第一个匹配项的下标以这道题为例,最简单的方法是双重遍历,这里学一下KMP算法更高效 什么是前缀表,对于一个待匹配的串“aabaaf”,其前缀表为0 1 0 1 2 0表示从开头到每个位置为止的前缀后缀相同部分的长度 class Solution { public: void getNext(vector<int> &next, const string& s) { int j = 0; next[0] = 0; int n = s.size(); for(int...

一.二分查找int binarySearch(vector<int>& arr, int target) { int left = 0; int right = int(arr.size()) - 1; while (left <= right) { int mid = left + (right - left) / 2; if (arr[mid] == target) { // 根据题意补充代码 return mid; } if (arr[mid]...

一.快速排序#include <bits/stdc++.h> using namespace std; // 分区函数 int partition(std::vector<int>& arr, int low, int high) { int i = low; int j = high; int target =...

一.字符串分割有多种方法比如自己双指针实现split函数,这里主要说明当split为类单字符时候,如何快速用stringstream数据流去比较方便地处理,用法就是stringstream ss后getline的第一个参数改为ss而不是cin,然后第三个参数改为需要的分隔符如逗号 //具体看例子就懂,以下是将 “1:2,3:4,5:6” 存入vector<std::pair<int,...

面试的时候通常是acm模式,头文件用 #include<bits/stdc++.h>,做题就加一句using namespace std; 一.不含额外数据结构的输入输出只需要cin,cout 这是最简单的也是大多数题用的,通过构建int,string并cin即可,遇到数组就用vector或者map去存 例子如下: #include<bits/stdc++.h> using namespace std; int main(){ int n; vector<int>...

这个系列是实现自己的std容器,某些地方进行了简化,但核心原理保留 一.vector#include<bits/stdc++.h> using namespace std; template <typename T> class MyVector{ private: T *elements; size_t capacity; size_t size; public: MyVector():elements(nullptr),capacity(0),size(0)...