練習題(2024/5/14)

1四數相加 II

給你四個整數數組?nums1nums2nums3?和?nums4?,數組長度都是?n?,請你計算有多少個元組?(i, j, k, l)?能滿足:

  • 0 <= i, j, k, l < n
  • nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0

示例 1:

輸入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]
輸出:2
解釋:
兩個元組如下:
1. (0, 0, 0, 1) -> nums1[0] + nums2[0] + nums3[0] + nums4[1] = 1 + (-2) + (-1) + 2 = 0
2. (1, 1, 0, 0) -> nums1[1] + nums2[1] + nums3[0] + nums4[0] = 2 + (-1) + (-1) + 0 = 0

示例 2:

輸入:nums1 = [0], nums2 = [0], nums3 = [0], nums4 = [0]
輸出:1

??提示:

  • n == nums1.length
  • n == nums2.length
  • n == nums3.length
  • n == nums4.length
  • 1 <= n <= 200
  • -228 <= nums1[i], nums2[i], nums3[i], nums4[i] <= 228

思路:

  1. 初始化哈希表:?創建一個哈希表?map,用于存儲 nums1 和 nums2 中所有數的和及其出現次數。

  2. 計算和及其出現次數:?遍歷 nums1 和 nums2 中的所有數,計算它們的和,并更新哈希表中對應和的出現次數。

  3. 查找相加為零的數對:?遍歷 nums3 和 nums4 中的所有數,查找它們的和是否在哈希表中存在相反數。如果存在,則將對應和的出現次數加入計數器中。

  4. 返回結果:?返回計數器中的值,即滿足條件的數對數目。

代碼:

class Solution {
public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {// 哈希表用于存儲兩個數組中元素之和及其出現次數unordered_map<int, int> map;// 計算 nums1 和 nums2 中所有數的和及其出現次數for (int num1 : nums1) {for (int num2 : nums2) {// 更新哈希表中對應和的出現次數map[num1 + num2]++;}}// 初始化計數器int count = 0;// 遍歷 nums3 和 nums4 中所有數,查找是否存在相加為零的數對for (int num3 : nums3) {for (int num4 : nums4) {// 判斷是否存在相反數在哈希表中if (map.find(0 - (num3 + num4)) != map.end()) {// 更新計數器count += map[0 - (num3 + num4)];}}}// 返回計數器中的值,即滿足條件的數對數目return count;}
};

2每位經理的下屬員工數量

表:Employees

+-------------+----------+
| Column Name | Type     |
+-------------+----------+
| employee_id | int      |
| name        | varchar  |
| reports_to  | int      |
| age         | int      |
+-------------+----------+
employee_id 是這個表中具有不同值的列。
該表包含員工以及需要聽取他們匯報的上級經理的 ID 的信息。 有些員工不需要向任何人匯報(reports_to 為空)。

對于此問題,我們將至少有一個其他員工需要向他匯報的員工,視為一個經理。

編寫一個解決方案來返回需要聽取匯報的所有經理的 ID、名稱、直接向該經理匯報的員工人數,以及這些員工的平均年齡,其中該平均年齡需要四舍五入到最接近的整數。

返回的結果集需要按照?employee_id?進行排序。

結果的格式如下:

示例 1:

輸入:
Employees 表:
+-------------+---------+------------+-----+
| employee_id | name    | reports_to | age |
+-------------+---------+------------+-----+
| 9           | Hercy   | null       | 43  |
| 6           | Alice   | 9          | 41  |
| 4           | Bob     | 9          | 36  |
| 2           | Winston | null       | 37  |
+-------------+---------+------------+-----+
輸出:
+-------------+-------+---------------+-------------+
| employee_id | name  | reports_count | average_age |
+-------------+-------+---------------+-------------+
| 9           | Hercy | 2             | 39          |
+-------------+-------+---------------+-------------+
解釋:
Hercy 有兩個需要向他匯報的員工, 他們是 Alice and Bob. 他們的平均年齡是 (41+36)/2 = 38.5, 四舍五入的結果是 39.

示例 2:

輸入: 
Employees 表:
+-------------+---------+------------+-----+ 
| employee_id | name ? ?| reports_to | age |
|-------------|---------|------------|-----|
| 1 ? ? ? ? ? | Michael | null ? ? ? | 45 ?|
| 2 ? ? ? ? ? | Alice ? | 1 ? ? ? ? ?| 38 ?|
| 3 ? ? ? ? ? | Bob ? ? | 1 ? ? ? ? ?| 42 ?|
| 4 ? ? ? ? ? | Charlie | 2 ? ? ? ? ?| 34 ?|
| 5 ? ? ? ? ? | David ? | 2 ? ? ? ? ?| 40 ?|
| 6 ? ? ? ? ? | Eve ? ? | 3 ? ? ? ? ?| 37 ?|
| 7 ? ? ? ? ? | Frank ? | null ? ? ? | 50 ?|
| 8 ? ? ? ? ? | Grace ? | null ? ? ? | 48 ?|
+-------------+---------+------------+-----+ 
輸出: 
+-------------+---------+---------------+-------------+
| employee_id | name ? ?| reports_count | average_age |
| ----------- | ------- | ------------- | ----------- |
| 1 ? ? ? ? ? | Michael | 2 ? ? ? ? ? ? | 40 ? ? ? ? ?|
| 2 ? ? ? ? ? | Alice ? | 2 ? ? ? ? ? ? | 37 ? ? ? ? ?|
| 3 ? ? ? ? ? | Bob ? ? | 1 ? ? ? ? ? ? | 37 ? ? ? ? ?|
+-------------+---------+---------------+-------------+

思路:

  1. 連接表:?使用 inner i?join將 Employees 表自連接,連接條件是員工的 employee_id 等于其直接上級的 reports_to。

  2. 計算直接下屬數量和平均年齡:?使用 count函數計算每個員工的直接下屬數量,并使用 avg?函數計算直接下屬的平均年齡。

  3. 分組和排序:?使用 GROUP BY 子句按照員工編號分組,然后使用 ORDER BY 子句按照員工編號進行排序。

代碼:

select a.employee_id as 'employee_id', a.name as 'name', count(b.employee_id) as 'reports_count', round(avg(b.age), 0) as 'average_age'
from Employees a inner join Employees b on a.employee_id = b.reports_to
group by a.employee_id
order by a.employee_id;

3查找每個員工花費的總時間

表:?Employees

+-------------+------+
| Column Name | Type |
+-------------+------+
| emp_id      | int  |
| event_day   | date |
| in_time     | int  |
| out_time    | int  |
+-------------+------+
在 SQL 中,(emp_id, event_day, in_time) 是這個表的主鍵。
該表顯示了員工在辦公室的出入情況。
event_day 是此事件發生的日期,in_time 是員工進入辦公室的時間,而 out_time 是他們離開辦公室的時間。
in_time 和 out_time 的取值在1到1440之間。
題目保證同一天沒有兩個事件在時間上是相交的,并且保證 in_time 小于 out_time。

計算每位員工每天在辦公室花費的總時間(以分鐘為單位)。 請注意,在一天之內,同一員工是可以多次進入和離開辦公室的。 在辦公室里一次進出所花費的時間為out_time 減去 in_time。

返回結果表單的順序無要求。
查詢結果的格式如下:

示例 1:

輸入:
Employees table:
+--------+------------+---------+----------+
| emp_id | event_day  | in_time | out_time |
+--------+------------+---------+----------+
| 1      | 2020-11-28 | 4       | 32       |
| 1      | 2020-11-28 | 55      | 200      |
| 1      | 2020-12-03 | 1       | 42       |
| 2      | 2020-11-28 | 3       | 33       |
| 2      | 2020-12-09 | 47      | 74       |
+--------+------------+---------+----------+
輸出:
+------------+--------+------------+
| day        | emp_id | total_time |
+------------+--------+------------+
| 2020-11-28 | 1      | 173        |
| 2020-11-28 | 2      | 30         |
| 2020-12-03 | 1      | 41         |
| 2020-12-09 | 2      | 27         |
+------------+--------+------------+
解釋:
雇員 1 有三次進出: 有兩次發生在 2020-11-28 花費的時間為 (32 - 4) + (200 - 55) = 173, 有一次發生在 2020-12-03 花費的時間為 (42 - 1) = 41。
雇員 2 有兩次進出: 有一次發生在 2020-11-28 花費的時間為 (33 - 3) = 30,  有一次發生在 2020-12-09 花費的時間為 (74 - 47) = 27。

思路:

  1. 選擇字段:?選擇查詢結果需要顯示的字段,包括事件日期(event_day)、員工編號(emp_id)以及員工的總工作時長(total_time)。

  2. 計算總工作時長:?使用 SUM 函數計算每位員工在每個事件日期的總工作時長,這通過計算 out_time 減去 in_time 得到。

  3. 分組:?使用 GROUP BY 子句將數據按照事件日期(event_day)和員工編號(emp_id)分組,以便對每位員工在每日的工作時長進行統計。

代碼:

select event_day as day, emp_id, sum(out_time - in_time) as total_time
from Employees
group by event_day, emp_id;

4可回收且低脂的產品

表:Products

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| product_id  | int     |
| low_fats    | enum    |
| recyclable  | enum    |
+-------------+---------+
product_id 是該表的主鍵(具有唯一值的列)。
low_fats 是枚舉類型,取值為以下兩種 ('Y', 'N'),其中 'Y' 表示該產品是低脂產品,'N' 表示不是低脂產品。
recyclable 是枚舉類型,取值為以下兩種 ('Y', 'N'),其中 'Y' 表示該產品可回收,而 'N' 表示不可回收。

編寫解決方案找出既是低脂又是可回收的產品編號。

返回結果?無順序要求?。

返回結果格式如下例所示:

示例 1:

輸入:
Products 表:
+-------------+----------+------------+
| product_id  | low_fats | recyclable |
+-------------+----------+------------+
| 0           | Y        | N          |
| 1           | Y        | Y          |
| 2           | N        | Y          |
| 3           | Y        | Y          |
| 4           | N        | N          |
+-------------+----------+------------+
輸出:
+-------------+
| product_id  |
+-------------+
| 1           |
| 3           |
+-------------+
解釋:
只有產品 id 為 1 和 3 的產品,既是低脂又是可回收的產品。

代碼:

selectproduct_id
fromProducts
wherelow_fats = 'Y' and recyclable = 'Y'

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/12401.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/12401.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/12401.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

代碼隨想錄訓練營Day28:貪心算法06

1.738單調遞增的數字 貪心策略&#xff1a;如果strNum[i]<strNum[i-1]那么strNum[i] 9,strNum[i-1]--;//比如87對應的最大的單調遞增的就是79. 具體實現&#xff1a; 對于遇到小于的情況&#xff1a;如果strNum[i]<strNum[i-1]那么strNum[i] 9,strNum[i-1]--;遍歷順…

linux phpstudy 重啟命令

[rootLinuxWeb phpstudy]# ./system/phpstudyctl restart 查看命令 1) phpstudy -start 啟動小皮面板 2) phpstudy -stop 停止小皮面板 3) phpstudy -restart 重啟小皮面板 4) phpstudy -status 查詢面板狀態 5) phpstudy -in…

OFDM802.11a的FPGA實現(十五)短訓練序列:STS(含Matlab和verilog代碼)

原文鏈接&#xff08;相關文章合集&#xff09;&#xff1a;OFDM 802.11a的xilinx FPGA實現 1.前言 在之前已經完成了data域數據的處理&#xff0c;在構建整個802.11a OFDM數據幀的時候&#xff0c;還剩下前導碼和signal域的數據幀&#xff0c;這兩部分的內容。 PLCP的前導部分…

Nodejs筆記2

模塊化 模塊化初體驗 模塊暴露數據 導入模塊 fs 寫絕對路徑 require寫相對路徑不會受到影響 ./../不能省略 js 和json文件后綴可以省略 如果存在 命名相同的js和json文件&#xff0c;優先導入js文件 導入文件夾時的情況 require導入模塊的基本流程 commonJS模塊…

其它高階數據結構①_并查集(概念+代碼+兩道OJ)

目錄 1. 并查集的概念 2. 并查集的實現 3. 并查集的應用 3.1 力扣LCR 116. 省份數量 解析代碼1 解析代碼2 3.2 力扣990. 等式方程的可滿足性 解析代碼 本篇完。 寫在前面&#xff1a; 此高階數據結構系列&#xff0c;雖然放在⑤數據結構與算法專欄&#xff0c;但還是作…

【數據可視化01】matplotlib實例介紹4之六邊形分箱圖

目錄 一、引言二、實例介紹 一、引言 hexbin是一個二維直方圖&#xff0c;其中箱子是六邊形&#xff0c;顏色表示每個箱子內的數據點數。 二、實例介紹 import matplotlib.pyplot as plt import numpy as np# Fixing random state for reproducibility np.random.seed(19680…

服務器利用率的神器腳本

在服務器管理的過程中&#xff0c;了解服務器的各項性能指標是至關重要的。無論是CPU的負載情況&#xff0c;內存使用情況&#xff0c;還是硬盤的存儲空間以及TCP連接狀態&#xff0c;這些都是我們判斷服務器健康狀態和性能的重要依據。然而&#xff0c;手動一項項去檢查這些指…

【MySQL】Mysql——安裝指南(Linux)

MySQL8.0.26-Linux版安裝 1. 準備一臺Linux服務器 云服務器或者虛擬機都可以; Linux的版本為 CentOS7; 2. 下載Linux版MySQL安裝包 3. 上傳MySQL安裝包 4. 創建目錄,并解壓 mkdir mysqltar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql5. 安裝mysql的安裝包 …

pip鏡像源

1.1 清華大學 https://pypi.tuna.tsinghua.edu.cn/simple 1.2 阿里云 https://mirrors.aliyun.com/pypi/simple/ 1.3 網易 https://mirrors.163.com/pypi/simple/ 1.4 豆瓣 https://pypi.douban.com/simple/ 1.5 百度云 https://mirror.baidu.com/pypi/simple/ 1.6 中科大 ht…

uniapp vue 獲取天氣數據

獲取當前地址&#xff0c;通過高德天氣數據&#xff0c;來展示天氣溫度風度等數據 //獲取天氣 getWeather(){// 獲取天氣預報uni.request({url: https://restapi.amap.com/v3/weather/weatherInfo, data: {city: 長沙,// extensions:all,key: xxxxxxxxxx//自己的高德密鑰key},…

2024OD機試卷-轉盤壽司 (java\python\c++)

題目:轉盤壽司 題目描述 壽司店周年慶,正在舉辦 優惠活動 回饋新老客戶。 壽司轉盤上總共有 n 盤壽司,prices[i] 是第 i 盤壽司的價格, 如果客戶選擇了第 i 盤壽司,壽司店免費贈送客戶距離第 i 盤壽司最近的下一盤壽司 j,前提是 prices[j] < prices[i],如果沒有滿足…

RAG 面向 LLM: 基于檢索增強的大語言模型調研

摘要 作為 AI 領域最先進的技術之一,檢索增強生成(RAG)技術可以提供可靠和最新的外部知識,為眾多任務提供巨大的便利。特別是在 AI 生成內容(AIGC)時代,RAG 中檢索強大的提供額外知識的能力使得檢索增強生成能夠輔助現有生成式 AI 生產高質量輸出。最近,大語言模型(LLM)在語言…

Zoho CRM企業成長的智能引擎,智能化銷售自動化

數字化時代&#xff0c;客戶體驗已成為企業競爭的核心要素。卓豪Zoho CRM&#xff0c;作為全球領先的SaaS云端客戶關系管理平臺&#xff0c;正引領著一場企業運營模式的變革&#xff0c;助力超過25萬家企業跨越180多個國家&#xff0c;實現客戶互動與業務增長的無縫對接。讓我們…

廣汽原車控制系統CAN協議控制汽車基本信息獲取及數據應用

在現代汽車工業的迅速發展中&#xff0c;車輛控制系統的智能化和網絡化已成為提升汽車性能的關鍵。廣汽作為中國汽車行業的佼佼者&#xff0c;其在原車通信網絡方面也取得了顯著的成就。特別是廣汽原車CAN&#xff08;Controller Area Network&#xff09;協議的應用&#xff0…

2024OD機試卷-分割均衡字符串 (java\python\c++)

題目:分割均衡字符串 題目描述 均衡串定義: 字符串 中只包含兩種字符,且這兩種字符的個數相同。 給定一個均衡字符串,請給出可分割成新的均衡子串的最大個數。 約定:字符串中只包含大寫的 X 和 Y 兩種字符。 輸入描述 字符串的長度:[2, 10000]。 給定的字符串均為均…

添磚Java之路(其六)——通過集合制作的學生信息管理系統

目錄 前言&#xff1a; 源碼&#xff1a; 前言&#xff1a; 我對于集合的理解&#xff0c;感覺就類似于順序表這樣的數據結構&#xff0c;然后他存儲的數據不能是基本類型&#xff0c;如果要用也只能用對應基本數據的包裝類。 對于集合有很多方法&#xff0c;我的建議就是去…

【運維】nvidia-smi錯誤信息:Failed to initialize NVML: Driver/library version mismatch

【運維】錯誤信息&#xff1a;Failed to initialize NVML: Driver/library version mismatch 是因為Nvidia的驅動沖突的原因 本地部署&#xff1a;本地Docker容器部署&#xff0c;本地驗證后打包鏡像 遠程部署&#xff1a;鏡像部署阿里云PAI EAS 因為在容器中安裝了驅動版本&a…

短視頻最后的慢動作怎么做:成都鼎茂宏升文化傳媒公司

短視頻最后的慢動作怎么做&#xff1a;技巧與創意實踐指南 在短視頻創作的浩瀚宇宙中&#xff0c;慢動作特效如同一顆璀璨的星辰&#xff0c;為作品增添無限魅力與情感深度。它不僅能夠放大細節之美&#xff0c;還能延長關鍵瞬間&#xff0c;引發觀眾強烈的情感共鳴。短視頻最…

SpringBoot項目的項目部署全過程

一、前端 安裝nginx 1.將提前準備好的nginx的安裝包上傳到Linux中/opt目錄下(我用的是Xftp) 2.解壓 2.1:在xshell中解壓該文件: tar -zxvf nginx-1.20.1.tar.gz 2.2:進入解壓后的目錄 cd nginx-1.20.1/ 2.3:安裝需要的依賴 yum -y install zlib zlib-devel openssl openssl-de…

html特殊字符的html,js,css寫法匯總

? 箭頭類 符號UNICODE符號UNICODEHTMLJSCSSHTMLJSCSS?&#8672\u21E0\21E0?&#8674\u21E2\21E2?&#8673\u21E1\21E1?&#8675\u21E3\21E3?&#8606\u219E\219E?&#8608\u21A0\21A0?&#8607\u219F\219F?&#8609\u21A1\21A1←&#8592\u2190\2…