1. Blog性质
  • 本BLOG由个人维护,文章内容来自于个人原创,主要目的为记录、整理学习过程中遇到的问题和笔记,不涉及商业用途
  1. 关于转载、版权
  • 欢迎非商业性用途转载,转载请注明出处
  • 本BLOG文章除特别声明以外,均为作者原创,未经作者本人允许不得擅自用于商业用途及传统媒体

目录

基础题

典型题

数据结构设计

解题通用思路

基础题

1.传递信息

给定总玩家数n,以及按[玩家编号,对应可传递玩家编号]关系组成的二维数组 relation。返回信息从编号0玩家经过k轮传递到编号为n-1玩家处的方案数;若不能到达,返回0

示例:输入:n = 5, relation = [[0,2],[2,1],[3,4],[2,3],[1,4],[2,0],[0,4]], k = 3
输出:3
解释:信息从小 A 编号 0 处开始,经 3 轮传递,到达编号 4。共有 3 种方案,分别是 0->2->0->4, 0->2->1->4, 0->2->3->4。

解法:

1
2
3
4
5
6
7
8
9
10
11
12
13
int numWays(int n, vector<vector<int>>& relation, int k) {
vector<vector<int>> dp(k+1,vector<int>(n));
dp[0][0] = 1;
for(int i = 0; i < k; i++){
for(auto t:relation){
int start = t[0], target = t[1];
dp[i+1][target] += dp[i][start];
}
}
return dp[k][n-1];
}

# dp[i][j]表示在第i轮能到达编号j的方案数
阅读全文 »

目录

一、项目概述

二、数据爬取及处理

三、构建知识图谱

四、应用开发:智能问答

五、Django+Echarts实现可视化

六、总结

一、项目概述

本文搭建知识图谱使用技术有:

  • 爬虫技术
  • Neo4j图数据库
  • Django框架
  • Echarts可视化库
  • Lac词法分析工具

整体结构

阅读全文 »

目录

一、Socket主要概念

二、Linux下的socket代码分析

三、实现一个Linux的socket程序

一、Socket主要概念

端口

有了 IP 地址,虽然可以找到目标计算机,但仍然不能进行通信。一台计算机可以同时提供多种网络服务,例如Web服务、FTP服务(文件传输服务)、SMTP服务(邮箱服务)等,仅有 IP 地址,计算机虽然可以正确接收到数据包,但是却不知道要将数据包交给哪个网络程序来处理,所以通信失败。

为了区分不同的网络程序,计算机会为每个网络程序分配一个独一无二的端口号

常用数据传输方式

SOCK_STREAM 和 SOCK_DGRAM。

阅读全文 »

目录

一、前期环境准备

二、建站

三、Hexo主题配置

四、发布一篇新博客步骤

一、前期环境准备

  • node.js
  • npm
  • git for windows

参考配置:

  • os: Windows10
  • node: 14.17.1
  • npm: 6.14.13
  • git for windows: 2.32.0
  • hexo: 4.2.0

二、建站

Github部分:

新建一个github仓库

仓库名用你的github用户名.github.io的格式

阅读全文 »