环境说明:

开发软件环境:IDEA 2022.2.3+Postman+MicroSoft Sqlserver Manager 2015

数据库:Sqlserver

后端: Springboot+mybatis+maven

前端: jQuery ajax+Echart可视化图表库

功能说明:

  1. 接收来自下位机的心率、体温等数据,将其存入Sqlserver数据库中
  1. 处理来自前端获取数据的请求,将数据以json的形式返回给前端

数据库建表语句:

1
2
3
4
5
6
7
8
9
10
11
12
use hello_world
go

create table endDeviceData
(
id int identity
primary key,
temperature float default 0 not null,
heartbeat_rate smallint default 0 not null,
oxygen_saturation float default 0 not null
)
go
阅读全文 »

蓝桥杯Java赛道备赛规划

不知不觉已经接近大三上学期的尾声了,不得不感慨时光过的好快啊!

今年的蓝桥杯变数很大,首先,本来已经被我稳稳拿捏的物联网赛道突然更换了开发板,但是学校的实验室资金不足,所以没有办法给我们购买开发板学习,如果自己买的话一个板子就要花400多大洋。再加上蓝桥杯本来就有300块报名费,更不用提实验室的负责老师今年不准备报销个人赛道的报名费了。所以说报名物联网赛道性价比大大降低,单片机和嵌入式赛道虽然也可以一试,但是奈何还是需要自购开发板,所以就打消了报名电子类赛道的念头。

目光只能放到软件类的赛道,由于C/C++赛道较为拥挤,最后在同学的推荐下报名了Java赛道。那么现在就开始刷题吧!干就完事了!

对于刷题的方法,我找到了网上的一些资源,这里先mark一下:

阅读全文 »

概述

CH32V303系列是基于32位RISC-V设计的工业级通用微控制器,配备了硬件堆栈区、快速中断入口,在标准RISC-V基础上大大提高了中断响应速度。CH32V303系列搭载V4F内核。加入单精度浮点指令集,扩充堆栈区,具有更高的运算性能,扩展串口UART数量到8组,电机定时器到4组。

阅读全文 »

剑指 Offer 04. 二维数组中的查找 - 力扣(Leetcode)

解题思路:

若使用暴力法遍历矩阵 matrix ,则时间复杂度为 O(NM) 。暴力法未利用矩阵 “从上到下递增、从左到右递增” 的特点,显然不是最优解法。

这道题我首先想到的就是暴力解法,时间复杂度最大:

1
2
3
4
5
6
7
8
9
public boolean findNumberIn2DArray(int[][] matrix, int target) {
for(int [] list : matrix){
for(int n : list){
if(n == target)return true;

}
}
return false;
}

当然有更好的解法,比如说,我们利用题目中二维数组每行递增的特点,每行都进行二分查找。这种方法的时间复杂度为O(mlogn),因为每次二分的时间复杂度为logn.

遍历二维数组的每一行,调用二分查找方法:

阅读全文 »

LeetCode第47题: 全排列II

题目描述:

给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。
示例 1:
输入:nums = [1,1,2]
输出:
[[1,1,2],
[1,2,1],
[2,1,1]]

题目链接:

47. 全排列 II - 力扣(Leetcode)

解题思路:

这道题跟46题类似,用深度优先遍历,暴力搜索nums数组,然后回溯时恢复标记数组的原状。
对于递归函数,其函数出口应当为:在判断递归深度等于nums数组的长度时,将path序列添加到结果集中并返回。
我们可以画出树形结构来帮助理解:

1
2
3
4
if(depth==len){
result.add(new ArrayList(path));
return;
}

函数体中,遍历nums数组的每一个元素,对其进行标记后,将其添加至path序列中:

1
2
3
4
5
6
7
8
9
10
for(int i = 0;i<len;i++){
if(!used[i]){
path.add(nums[i]);
used[i]=true;
dfs(len,nums,depth+1,path,used);
//回溯
path.remove(path.size()-1);
used[i] = false;
}
}
阅读全文 »
0%