项目
什么是业务后台系统(合家云社区物业管理平台)1、后台系统架构设计 外卖系统全局加购
前端 后端 大数据
业务前台系统
业务后台系统
数据中台
外卖IOS端
外卖商品 《—- 商品数据
数据集市
Android端
外卖订单 《— 订单数据
数据计算
PC端
外卖配送 《—配送数据
报表分析
业务后台系统举例
例子:电商业务:查询商品信息系统,保存订单的系统
短视频和资讯类:查询视频基本信息和咨询的系统,能够保存短视频的系统
2、业务后台系统的分类所有技术实现的都是增删改查, ...
背包问题
背包问题首先给你两个数组w和v表示货物的重量和价值
每种货物的数量1。
重量和价值都是大于等于0的。
还有一个参数int bag表示背包有多大。
返回在不超过背包容量的最大价值
想法:尝试!!-》动态
从左往右依次尝试
假设有三个货物
暴力枚举,最佳方案肯定在其中。要做的就是将这种想法,变成递归的版本。
123456789101112131415161718192021222324252627282930313233343536373839404142434445/** * @Auther: oyy0v0 * @Date: 2023/7/13 - 07 - 13 - 16:54 * @Description: Test * @version: 1.0 */public class test { public static int knapsack(int[] w,int[] v,int bag){ if(w.length!=v.length || w.length==0||v.length==0||bag<0){ ...
AI夏令营天气预报大赛
AI夏令营第三期比赛任务提供10年的再分析数据,通过输入历史70个大气变量数据,预测华东区域未来1-5天的5个地面变量。
赛题数据集==输入历史2个时刻的多个大气变量,输出未来1-5天每6小时的5个地面变量==
推理文件的输入Input: (2 x 70 x H x W),输出Output: (20 X 5 X H X W)
==疑问:这个输入输出什么意思?矩阵的意思吗?==
其数据类型是float16(半精度的一个数据类型),存储为pt格式。==可以不使用70个变量作为输入,但是输出必须包含5个地面变量==,且顺序必须按照【T2M(2米温度),U10(10米纬向风),V10(10米径向风), MSL(平均海平面气压),TP(6小时累计降水)】,必须包含20个step对应未来时刻:[6,12,18,24,30,36,42,48,54,60,66,72,78,84,90,96,102,108,114,120](小时)
深度学习的宏观框架 训练和推理训练打个比方,想要训练一个能区分橙子和苹果的模型,你需要搜索一下苹果和橙子的图片,这些图片放在一起称为训练数据集(training data ...
Java小记
Java小记(完整版)觉得有用的话去GitHub点个小星星❤️❤️❤️❤️❤️❤️❤️JAVASEJava简史计算机语言发展历史
机器语言:简单理解就是0和1,但是由于其复杂难懂所以进化
汇编语言:将一些常用的机器语言整合,用助记符来代替机器语言那一大串0和1,但是流程控制都是用GOTO来进行,所以很混乱,需要继续进化
最后就是现在的高级语言了。
当然高级语言也分为强类型语言和弱类型语言,静态语言和动态语言
初学者不太需要知道这个概念,以后写多了慢慢了解。
简略讲一下就是
强类型就是一旦指定了类型,比如int i;之后要将i转换成byte类型或者String类型那么就需要强制转换。而弱类型则不用,会自动给转换。
静态类型就是一旦指定了一个类型那么他就是那个类型,动态类型就是比如JS中的var它会根据你给他的值来进行变换。
JAVA体系结构
==JavaSE:标准版,定位在个人计算机上的应用==
这个版本是Java平台的核心,他提供非常丰富的API来开发一般个人计算机上的应用程序。
==JavaEE:企业版,定位在服务器端的应用==
JavaEE是JavaSE的扩展, ...
Git和Github使用教程
Git和Github使用教程GitGit的概念【1】Git技术:公司必备,一定要会
【2】Git概念:
Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。
【3】什么是版本控制?
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统 。
【4】为什么要使用版本控制?
软件开发中采用版本控制系统是个明智的选择。
有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。
就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。
但额外增加的工作量却微乎其微。你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。
【5】版本控制系统的分类:
❀集中化的版本控制系统:
集中化的版本控制系统诸如CVS, SVN 以及Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客
户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系 ...
单链表和双链表
单链表和双链表介绍 任何数据结构从内存结构来分只有两种:紧密结构,比如数组,要么是跳转结构
跳转结构就是,有一个数据是Node里面记了一个value值还有记载下一个的地址的指针。
单链表就是记录了下一个节点的地址,双链表就是记录了上一个节点的地址和下一个节点的地址。
经典问题1:单链表反转什么是反转?
首先这是一个正常的链表,有a节点,b节点,c节点,c节点指向空,空是一个特定的地址,虚拟机JVM里面特定的一个值(后面再更新JVM)。
然后在内存里我给你一个头节点Head指向a节点的内存区域,反转时是把链表逆序
变成这样。
那么怎么实现呢?
单链表反转原理:首先理清一件事情:Head如果在反转之后,还是指向a,JVM在这时候会将B,C节点释放,因为没有任何方法找到B,C了,JVM会认为是垃圾空间会将其释放。
所以要怎么做呢?
利用Head=f(Head),f()函数的作用就是将其逆序然后返回最后一个节点的地址传给Head,也就是将链表逆序,然后返回C的地址给Head.
详细流程
哈希表和有序表
哈希表和有序表(简单理解型) 1.哈希表的使用
2.有序表的使用
哈希表的使用HashMap首先哈希表是按照键值对的方式存储数据的,里面有正常的增删改查的方法,但是它最牛的是:
不管数据量多大,==它的增删改查的时间复杂度都是O(1)!!!!!!!!!!!!!!!!!==
==另一个重要的是它的数据传递方式是按值传递==,不是按照数据地址传递。
只要数据类型是Integer,Double,String,Float,Char都是按值传递,而非原生类型的就不行咯~~
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657package class01;import com.sun.org.apache.xalan.internal.xsltc.runtime.Node;import java.util.HashMap;/** * @Auther: ouyy * @Date: 2023/5/8 - 05 - 08 - 1 ...
插入排序
插入排序数组【3】【2】【3】【1】【4】
下标 【0】【1】【2】【3】【4】
原理1.0~0位置有序
2.0~1位置有序,不有序就交换
3.0~2位置有序,不有序就交换
4.0~3位置有序…
N. 0~N-1位置有序….
这就是插入排序的原理。
时间复杂度是多少?数据状况会影响时间复杂度,应该用最差的数据状况来估计时间复杂度,所以插入排序的时间复杂度还是O(N*N),
代码123456789101112131415161718192021222324252627public class Code02_insertionSort { public static void insertionSort(int[] arr){ if(arr == null || arr.length<2){ return; } for(int i = 1;i<arr.length;i++) { for (int j = i - 1; j >= 0 ...
冒泡排序
冒泡排序原理:先把最大的放到最后,依次循环举例:【5】【1】【4】【3】【2】
下标:【0】【1】【2】【3】【4】
先将0和1 比较谁大谁放后面,再将1和2比较…依次循环
现在有N个数第一次循环N次,第二次N-1次。。。等差数列所以时间复杂度是O(N*N)
代码比较简单就不展示了。
常数操作
常数操作固定时间的操作比如 int a 32位, int b 32位
a+b , a/b , a*b 即1+1 和112345341*32513 时间是一样的O(1)
寻址操作也是O(1)int[] 在逻辑上是连续的区域,时间几乎是一样的
什么不是固定时间操作Link List 申请1千万的长度
而因为他不是连续的,他不能依靠偏移量来找,只能通过跳转一个一个找所以找2百万的地址和8百万的地址的时间必然是不一样的