day39.动态规划+MySQL数据库复习

devtools/2024/9/24 20:27:55/

一.动态规划:

198.打家劫舍

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

 思路: 如果只有一家 那直接就偷 ; 首先初始化数组,dp[i]的含义是考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。所以dp[1]=nums0 和 1取最大值 然后从2开始遍历 递推公式就是 看你偷还是不偷  dp[i-1]就是不偷 取上一个最优值 dp[i-2]+nums[i] 很明显就是偷了 nums是当前值 dp[i-2]是 从0到i-2的总资金 看谁的更大一些 就取谁的

class Solution {
public:int rob(vector<int>& nums) {if (nums.size() == 0) return 0;if (nums.size() == 1) return nums[0];vector<int> dp(nums.size());dp[0]=nums[0];dp[1]=max(nums[0],nums[1]);//dp[i] for(int i=2;i<nums.size();i++){dp[i]=max(dp[i-2]+nums[i],dp[i-1]);}return dp[nums.size()-1];}
};

213.打家劫舍II

你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。

给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。

 思路: 与打家劫舍1不同的是,房屋形成了环,成环的话 有如下三种情况:

1.不包含首尾元素

2.不包含首元素

3.不包含尾元素

 所以需要将这三种情况考虑进去,综合判断哪种情况的资金是最多的。

class Solution {
public:int rob(vector<int>& nums) {if (nums.size() == 0) return 0;if (nums.size() == 1) return nums[0];int result1 = robRange(nums, 0, nums.size() - 2); // 情况二 // 不考虑尾部int result2 = robRange(nums, 1, nums.size() - 1); // 情况三//不考虑 首部return max(result1, result2);}int robRange(vector<int>& nums, int start, int end){if(end==start)return nums[start];vector<int> dp(nums.size());//之后就是打家劫舍2的思路了dp[start]=nums[start];dp[start+1]=max(nums[start],nums[start+1]);for(int i=start+2;i<=end;i++){dp[i]=max(dp[i-2]+nums[i],dp[i-1]);}return dp[end];}
};

 

二.MySQL数据库复习

1683.无效的推文

查询所有无效推文的编号(ID)。当推文内容中的字符数严格大于 15 时,该推文是无效的。

以任意顺序返回结果表。

 对于SQL表,用于计算字符串中字符数的最佳函数是 CHAR_LENGTH(str),它返回字符串 str 的长度。

select tweet_id 
from tweets 
where CHAR_LENGTH(content)>15;
#对于SQL表,用于计算字符串中字符数的
#最佳函数是 CHAR_LENGTH(str),它返回字符串 str 的长度。

1148.文章浏览:

请查询出所有浏览过自己文章的作者

结果按照 id 升序排列。

 distinct 去重  order by 排序

# Write your MySQL query statement below
#请查询出所有浏览过自己文章的作者
#结果按照 id 升序排列。
select 
distinct author_id as id 
from Views 
where author_id=viewer_id
order by id;

函数:

 约束:在创建表的时候可以添加约束

 

外键约束:用来让两张表的数据之间建立连接 从而保证数据的一致性和完整性。

删除

        由下图可见,如果两个表没有主从关系,没有外键约束的话,当撤除业务线1研发部时,此时身处部门的员工仍会残留在数据库中,这样就失去了数据的完整性和一致性,所以要添加外键,当添加完外键之后,就不可以直接删除掉研发部 这个内容了 ,因为外键仍然存在,所以无法删除

 

 2.多表查询

1.内连接

inner 

2.外连接

 左外链接查询:     左外连接 完全包含左表的值 包括空

1378.使用唯一的标识码替换员工leetcode题目

select EmployeeUNI.unique_id,Employees.name
from Employees 
LEFT JOIN EmployeeUNI 
ON Employees.id=EmployeeUNI.id;


http://www.ppmy.cn/devtools/99704.html

相关文章

微服务多个模块启动,端口被占用,yml配置文件读不到

刚刚提交到gitee自己的仓库&#xff0c;拉下来还是报错&#xff0c;然后看到一个解决方法&#xff1a; <build><resources><resource><directory>src/main/java</directory><includes><include>**/*.yml</include><includ…

python | 图片转换为 pdf 实现方法

目录 一、PIL 库简介及安装使用方法 &#xff08;一&#xff09;python 不同版本下 PIL 的使用方法 二、图片转换为 pdf 的两种实现方法 &#xff08;一&#xff09;简易版——pdf 页面尺寸跟随图片大小 &#xff08;二&#xff09;常用版——pdf 每页尺寸统一为 A4 一、P…

Linux常用指令大全

一、文件和目录管理 指令功能注释ls列出目录内容列出当前目录或指定目录下的文件和子目录cd切换目录切换当前工作目录pwd显示当前目录显示当前工作目录的完整路径mkdir创建目录创建一个新的目录rmdir删除空目录删除一个空的目录rm删除文件或目录删除文件或目录&#xff0c;-r选…

Java迭代器(Iterator)和分割器(Spliterator)

在Java中&#xff0c;迭代器&#xff08;Iterator&#xff09;和分割器&#xff08;Spliterator&#xff09;都是用于遍历集合&#xff08;Collection&#xff09;的高级机制&#xff0c;但它们在设计目的和使用场景上有所不同。 迭代器&#xff08;Iterator&#xff09; 迭代…

微服务的负载均衡不同的场景应用

这些负载均衡策略各有不同的优点和应用场景。以下是每种负载均衡策略的详细解释及其适用场景&#xff1a; 1. Random Load Balance&#xff08;随机算法&#xff09; 描述: 随机算法通过随机选择一个服务器来处理请求。对于性能较好的服务器&#xff0c;可以设置更大的权重值…

node版本8.x→16.x,前端维护火葬场,问题及解决方案总结

为了后续的工程开发&#xff0c;我需要升级我的node&#xff0c;在此之前我的node版本是8&#xff0c;这个版本太老了&#xff0c;从8升级到16的跨度太大&#xff0c;对于以前的许多项目&#xff0c;产生了非常多维护方面的问题&#xff0c;历时四天终于全部解决了&#xff0c;…

C++ | Leetcode C++题解之第355题设计推特

题目&#xff1a; 题解&#xff1a; class Twitter {struct Node {// 哈希表存储关注人的 Idunordered_set<int> followee;// 用链表存储 tweetIdlist<int> tweet;};// getNewsFeed 检索的推文的上限以及 tweetId 的时间戳int recentMax, time;// tweetId 对应发送…

SpringBean

1. 什么是Spring Bean 定义: Spring Bean是由Spring IoC容器管理的对象。是应用程序的核心组成部分&#xff0c;通常是服务、DAO、控制器等。 2. Bean的定义方式 XML配置: 通过XML文件定义Bean。 <beans xmlns"http://www.springframework.org/schema/beans"x…