油油灰
码龄10年
关注
提问 私信
  • 博客:23,412
    23,412
    总访问量
  • 51
    原创
  • 270,675
    排名
  • 18
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2015-09-20
博客简介:

you558的博客

查看详细资料
  • 原力等级
    当前等级
    1
    当前总分
    74
    当月
    1
个人成就
  • 获得39次点赞
  • 内容获得14次评论
  • 获得79次收藏
  • 代码片获得142次分享
创作历程
  • 2篇
    2024年
  • 2篇
    2022年
  • 36篇
    2020年
  • 12篇
    2019年
成就勋章
TA的专栏
  • Linux
    4篇
  • 操作系统
    3篇
  • C++
    6篇
  • 数据结构
    10篇
  • 每日两题
    11篇
  • 算法
    26篇
  • LeetCode
    25篇
  • 网络编程
    3篇
  • 双指针
    1篇
  • 动态规划
    1篇
  • 二分法
    1篇
  • 优先级队列
    1篇
  • 计算机网络
    2篇
  • STL
    1篇
  • 论文
    2篇
  • 剑指offer
    1篇
  • leveldb
    2篇
  • test
兴趣领域 设置
  • 大数据
    mysqlredis
  • 服务器
    linux
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

如何设计一个点赞系统

首先我们定义出一个点赞系统需要对外提供哪些接口:1.用户对特定的消息进行点赞;2.用户查看自己发布的某条消息点赞数量以及被哪些人赞过;3.用户查看自己给哪些消息点赞过;这里假设每条消息都有一个message_id, 每一个用户都有一个user_id, 从以上三个接口我们可以大概想到需要在存储层保存哪些数据:1.消息点赞表, 形式如, 需要具备根据指定message_id 查找所有点赞人及点赞数量的能力;2.用户点赞表,形式如,需要具备根据user_id查找其所有点赞过的消息列表;3.点赞计数表,形
原创
发布博客 2024.06.20 ·
1780 阅读 ·
25 点赞 ·
6 评论 ·
21 收藏

家庭电脑私网如何访问阿里云服务器的指定端口

2.阿里云服务器控制台设置防火墙,如下图所示,直接添加一条规则即可,端口号填写需要开放的端口如6379,IP填写上一步获取的地址如1.2.3.4。最后特别申明一点,第二部中拿到的IP地址可能会变化,这取决与使用的NAT有关,如下图所示,一旦IP变化可能就需要重新进行如上步骤添加一个IP。当然,这里也可以对外开放全部IP和端口号,如下图所示,但是这样做会使的服务器完全暴露,又被攻击的风险。3.设置服务器防火墙,登录云服务器,用如下命令开放指定的端口号。
原创
发布博客 2024.06.09 ·
395 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

初级版linux中 ls 命令实现

linux
原创
发布博客 2022.09.10 ·
517 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

设置进程工作目录、进程终止处理程序

设置进程工作目录和终止处理程序
原创
发布博客 2022.09.09 ·
204 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer20 表示数字的字符串

剑指offer20之前做的时候思路比较乱,重新总结一波;按题目要求,字符串表示为数字有以下几个规则:1.首尾的空格必须去掉,不影响结果;2.+或者- 必须出现在第一位,或者e/E的后面一位;3.e和. 只能出现一次;4.e/E 后面必须有数字;5. .面不能有e/E;不满足以上条件的就是非法数字,直接返回false;class Solution {public: bool isNumber(string s) { if(s.size()==0)return false;
原创
发布博客 2020.08.10 ·
160 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

memcpy()/memmove()函数实现

两个函数都是将源地址开始的若干个字节复制到目的地址,区别在于memcpy()无法处理区间重叠;这里处理区间的处理方式位,当目的地址大于源地址就反向拷贝,反之就正向拷贝;void* mymemcpy(void* src,void* dst,int n){ char* psrc=(char*)src; char* pdst=(char*)dst; if(psrc==0||pdst==0)return (void*)0; if(pdst>psrc) {
原创
发布博客 2020.08.07 ·
154 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

手写一波常见排序

好久没看排序相关的了,为了应付面试,复习一下;简单的写一下 冒泡排序,选择排序,快速排序;//冒泡排序void sort(vector<int>&v,int l,int r){ for(int i=r;i>=l;--i) { int ind=0; for(int j=0;j<=i;++j) { if(v[ind]<v[j]){ind=j;}; }
原创
发布博客 2020.08.01 ·
148 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

玩具版C++ 智能指针 unique_ptr的实现

#include<algorithm>#include<iostream>#include<vector>template<class T>void defaultfunc(T* p){ if (p) delete(p);}template<class T,class D=decltype(defaultfunc<T>)*>class myunique_ptr{public: explicit myun
原创
发布博客 2020.07.19 ·
154 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

两个线程交替打印字符和数字

用信号量来实现两个线程之间的同步;线程1打印数字;线程2打印字母;#include<semaphore.h>#include<string>#include<thread>#include<iostream>sem_t sm1,sm2;string s1="123456789";string s2="abcdefghi";int i=0,j=0;void func1(){ while(i<s1.size())
原创
发布博客 2020.07.18 ·
473 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

IO复用---select()函数

参数1:要监听的描述符的个数,一般取需要监听的描述符中最大值加1;参数2~4:三个数组,分别表示可读,可写,和异常事件对应的描述符集合,数组大小也限制了所能监听的最大描述符个数,一般为1024个;以下四个函数用来操作这三个数组;参数5:超时时间,不需要可以设置为NULL,表示如果没有活动的事件产生,将一直阻塞(不考虑信号);服务端利用select()监听客户端套接字上可读事件:#include <sys/types.h>#include <sys/socket.h>.
原创
发布博客 2020.07.11 ·
141 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

writev 函数使用

其中fd为一个文件描述符,vector为一个数组,数组中每个元素都包含了一个地址和一个偏移量,count表示数组的个数;以下代码:服务端利用writev()从一个stadus_line数组和另外一个本地文件读取文件,并发送到客户端;#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#include <stdio.h&.
原创
发布博客 2020.07.10 ·
1847 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

dup函数

1.服务端,关闭标准输出(文件描述符为1),执行dup(confd),其中confd为客户端套接字;这样服务器端输出到标准输出的内容就会发送到客户端;#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#include <stdio.h>#include <unistd.h>#include <
原创
发布博客 2020.07.09 ·
405 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指 Offer 60. n个骰子的点数

剑指 Offer 60. n个骰子的点数class Solution {public: vector<double> twoSum(int n) { vector<vector<int>>dp(n+1,vector<int>(6*n+1,0)); vector<double>ans; for(int i=1;i<7;++i) dp[1][i]=1; for(int i=2;i
原创
发布博客 2020.07.03 ·
105 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++11 实现线程池

头文件,threadpoll类定义;#ifndef THREADDPOOL#define THREADDPOOL#include <vector>#include <utility>#include <queue>#include <thread>#include <functional>#include <mutex>#include<condition_variable>using namespac
原创
发布博客 2020.07.03 ·
209 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

单例模式C++实现

1. 饿汉模式class Singleton{ private: static Singleton instance; Singleton(){std::cout<<"construct "<<std::endl;} Singleton(const Singleton&); public: ~Singleton(){std::cout<<"destroy"<<std::endl;}; s
原创
发布博客 2020.07.02 ·
142 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LEETCODE 378 有序矩阵中第K小的元素

378. 有序矩阵中第K小的元素1.二分法class Solution {public: int kthSmallest(vector<vector<int>>& matrix, int k) { auto n=matrix.size(); int l=matrix[0][0],r=matrix[n-1][n-1]; while(l<r) { int mi=l+(r-l
原创
发布博客 2020.07.02 ·
136 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode 560和为K的子数组

题目方法一:构造一个前缀和数组,然后在两重循环暴力搜索所有的可能;时间复杂度O(n^2);最后一个测试用例无法通过。class Solution {public: int subarraySum(vector<int>& nums, int k) { vector<long long>sum{0}; long long ans=0,res=0; for(auto c:nums) {
原创
发布博客 2020.05.15 ·
212 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

最大子序和

leetcode 53这道题刷了一遍还是不太熟练,总结一下几种解法;方法一:动态规划dp[i]表示以数组第i个元素结尾的最大子序列,很容易写出递推公式如下:dp[i]=dp[i-1]>0?dp[i-1]+nums[i]:nums[i];实现代码如下,比较简单的动态规划,空间复杂度可以优化为O(1);class Solution {public: int maxSubAr...
原创
发布博客 2020.05.03 ·
176 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

STL中next_permutation()和prev_permutation()函数实现

next_permutation()和permutation()是STL提供的用来计算下一个排列和上一个排列的算法;刷题中经常用到,比较有用。next_permutation()实现:template <class iterator>bool next_permutation(iterator first,iterator last){ if(first==last)r...
原创
发布博客 2020.04.25 ·
238 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

多源BFS

多源bfs方法可以解决leetcode 上的一类题,一般来说我们使用BFS都是单源的,如二叉树层次遍历等leetcode 上的很多题目,我们起始阶段只需要将某一个元素加入队列。多源顾名思义就是开始阶段加入多个元素入队列,我们也可以将其理解为存在一个超级源点。如下994题腐败的橘子,网格中存在若干个腐败橘子,我们需要求出所有新鲜橘子被腐烂的时间。如果按单源的bfs,从一个腐烂橘子开始遍历,那么...
原创
发布博客 2020.04.15 ·
2305 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏
加载更多