获得徽章 0
轮转数组
//方法1:使用额外的数组
public class ordinaryArray_rotate {
public static void main(String[] args) {
int nums[] = {1,2,3,4,5,6,7};
int k = 3, n = nums.length;

int[] res = new int[n];
for (int i = 0; i < n; ++i) {
//就是想不到这一步 太巧了!!找数字规律像脑筋急转弯
res[(i + k) % n] = nums[i];
}
System.*arraycopy*(res, 0, nums, 0, n);
}
}
展开
评论
//leetcode_27_移除元素
//双指针
//先动fast,如果fast不等于val,即不需要移除,slow跟着移动
//如果fast等于val,即需要移除,fast进下一位slow不动
class Solution {
public int removeElement(int[] nums, int val) {
int slow = 0;
for(int fast = 0; fast < nums.length; fast++) {
if(nums[fast] != val) {
nums[slow] = nums[fast];
slow++;
}
}
return slow;
}
}
展开
评论
//增强for循环,左边数据类型+变量,右边是数组/集合。
//表示对于数组 `strs` 中的每个元素,将其逐个赋值给变量 `str`。循环会依次迭代数组 `strs` 中的所有元素,并执行循环体中的代码。
for (String str : strs) {
//对于每个字符串 str,将其转换为字符数组 array。
char[] array = str.toCharArray();
//对字符数组进行排序,使得所有异位词都变成相同的字符串。
Arrays.sort(array);
//创建一个新的字符串 key,使用排序后的字符数组作为参数。
String key = new String(array);
//使用键 key 在 HashMap 中获取对应的值,如果没有则返回一个空的字符串列表。
List<String> list = map.getOrDefault(key, new ArrayList<String>());
//将当前字符串 str 添加到列表中。
list.add(str);
//将更新后的列表放回 HashMap 中,使用键 key。
map.put(key, list);
}
展开
评论
//l左边界,r右边界,size有效窗口大小,count需要字符个数,start为有效窗口的开始下标
int l = 0, r = 0, size = Integer.MAX_VALUE, count = t.length(), start = 0;
while(r < s.length()){
char c = s.charAt(r);
if(need[c]>0){//说明该字符我们需要
count--;
}
//这里将r遍历的字符都加入到了窗口中,如果是无关的字符会变成负数
//如果是需要的字符就会减一,出现多余的也会变成负数
need[c]--;
if(count == 0){//说明区间已经拿到了所有需要的字符
//这里有两种情况,一种是区间不需要的字符,还有一种是重复的需要字符
//总之就是去掉冗余的字符,缩小区间
while(l < r && need[s.charAt(l)] < 0){
need[s.charAt(l)]++;
l++;
}
if(r-l+1<size){
size = r-l+1;
start = l;
}
need[s.charAt(l)]++;
l++;
count++;
}
//右边界右移
r++;
}
return size == Integer.MAX_VALUE ? "" : s.substring(start, start + size);
展开
评论
滑动窗口最大值

使用一个循环,从0到k-1遍历数组nums。在循环中,首先检查双端队列是否为空,以及当前元素是否大于等于双端队列中最后一个元素所对应的数组值。如果是,就将最后一个元素从双端队列中移除,直到队列为空或者当前元素小于最后一个元素所对应的数组值。然后,将当前元素的索引加入到双端队列的末尾。
展开
评论
HTTP 的 Keep-Alive 也叫 HTTP 长连接,该功能是由「应用程序」实现的,可以使得用同一个 TCP 连接来发送和接收多个 HTTP 请求/应答,减少了 HTTP 短连接带来的多次 TCP 连接建立和释放的开销。

TCP 的 Keepalive 也叫 TCP 保活机制,该功能是由「内核」实现的,当客户端和服务端长达一定时间没有进行数据交互时,内核为了确保该连接是否还有效,就会发送探测报文,来检测对方是否还在线,然后来决定是否要关闭该连接。
展开
评论
力扣第15题,三数之和
核心思想:他就是把三数之和转化成两数之和,两数之和是可以双指针复杂度是n。

算法流程:sort,然后右向左枚举第一个数,然后后面两个数字直接双指针就能找到
评论
//主要是语法不熟悉
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
//创建一个空的 HashMap,用于存储分组后的结果。键是排序后的字符串,值是对应的字符串列表。
//左边是键的类型,右边是值的类型
Map<String, List<String>> map = new HashMap<String, List<String>>();

//增强for循环,左边数据类型+变量,右边是数组/集合。
//表示对于数组 `strs` 中的每个元素,将其逐个赋值给变量 `str`。循环会依次迭代数组 `strs` 中的所有元素,并执行循环体中的代码。
for (String str : strs) {
//对于每个字符串 str,将其转换为字符数组 array。
char[] array = str.toCharArray();
//对字符数组进行排序,使得所有异位词都变成相同的字符串。
Arrays.sort(array);
//创建一个新的字符串 key,使用排序后的字符数组作为参数。
String key = new String(array);
List<String> list = map.getOrDefault(key, new ArrayList<String>());
//将当前字符串 str 添加到列表中。
list.add(str);
//将更新后的列表放回 HashMap 中,使用键 key。
map.put(key, list);
}
return new ArrayList<List<String>>(map.values());
}
}
展开
评论
图片的base64编码就是可以将一张图片数据编码成一串字符串,使用该字符串代替图像地址url

在前端页面中常见的base64图片的引入方式:

<img src="data:image/png;base64,iVBORw0..>

1. **优点**

(1)base64格式的图片是文本格式,占用内存小,转换后的大小比例大概为1/3,降低了资源服务器的消耗;

(2)网页中使用base64格式的图片时,不用再请求服务器调用图片资源,减少了服务器访问次数。

2. **缺点**

(1)base64格式的文本内容较多,存储在数据库中增大了数据库服务器的压力;

(2)网页加载图片虽然不用访问服务器了,但因为base64格式的内容太多,所以加载网页的速度会降低,可能会影响用户的体验。

说明:医院logo图片小,因此上传医院logo是可以使用base64格式保存
展开
评论
SpringBoot 整合MongoDB
C:\Windows\System32>d:

D:\>cd D:\Java\MongoDB 6.0.8\bin

D:\Java\MongoDB 6.0.8\bin>mongod -f "D:\Java\MongoDB 6.0.8\conf\mongod.conf"

D:\Java\MongoDB 6.0.8\bin>net start mongodb
请求的服务已经启动。
展开
评论
对于医院管理系统这样的应用,通常需要处理结构化数据和关系型模型,同时也可能需要存储大量的半结构化数据,例如患者病历、影像数据等。在这种情况下,结合使用 MongoDB 和 MySQL 可能是一个不错的选择。

你可以使用 MySQL 来管理结构化数据,例如患者信息、医生信息、药物信息等,以及处理复杂的关系型查询和事务。

而 MongoDB 可以用于存储半结构化数据,例如患者病历、医疗记录、影像数据等。MongoDB 的灵活性和可扩展性使其适合存储和查询这些非结构化数据。此外,MongoDB 还可以更好地处理大量数据和高并发的读写操作。

通过将两种数据库结合使用,你可以根据具体的数据类型和需求选择合适的存储引擎,并充分发挥它们各自的优势。这种混合使用的架构可以提供更好的性能和灵活性,以满足医院管理系统的要求。
展开
评论
利用MongoRepository写保存操作:

@Override
public void save(Map<String, Object> paramMap) {
//把参数map集合转换对象 Hospital
String mapString = JSONObject.*toJSONString*(paramMap);
Hospital hospital = JSONObject.*parseObject*(mapString, Hospital.class);

//判断是否存在数据
String hoscode = hospital.getHoscode();
Hospital hospitalExist = hospitalRepository.getHospitalByHoscode(hoscode);

//如果存在,进行修改
if(hospitalExist != null) {
hospital.setStatus(hospitalExist.getStatus());
hospital.setCreateTime(hospitalExist.getCreateTime());
hospital.setUpdateTime(new Date());
hospital.setIsDeleted(0);
hospitalRepository.save(hospital);
} else {//如果不存在,进行添加
hospital.setStatus(0);
hospital.setCreateTime(new Date());
hospital.setUpdateTime(new Date());
hospital.setIsDeleted(0);
hospitalRepository.save(hospital);
}
}
展开
评论
下一页
个人成就
文章被阅读 1,238
掘力值 145
收藏集
0
关注标签
11
加入于