求職筆試題

PDD

最長公共子序列

1143-最長公共子序列
在這里插入圖片描述

class Solution:def longestCommonSubsequence(self, text1: str, text2: str) -> int:"""二維動態規劃"""m, n = len(text1), len(text2)# dp = [[0]* (n+1)] * (m+1)  這種寫法錯誤,m+1行會共享存儲dp = [[0] * (n + 1) for _ in range(m + 1)]print('dp2', len(dp), len(dp[0]))for i in range(1, m+1):for j in range(1, n+1):if text1[i-1] == text2[j-1]:dp[i][j] = dp[i-1][j-1] + 1else:dp[i][j] = max(dp[i-1][j], dp[i][j-1])return dp[-1][-1]

在這里插入圖片描述

島嶼數量

200-島嶼數量
在這里插入圖片描述

class Solution:def numIslands(self, grid: List[List[str]]) -> int:"""遇到1,深度優先搜索(遞歸遍歷上下左右 類比二叉樹),搜索到后置為0 防止再次搜索"""def dfs(grid, i, j):if not 0 <= i < len(grid) or not 0 <= j < len(grid[0]) or grid[i][j] == '0':returngrid[i][j] = '0'dfs(grid, i-1, j)dfs(grid, i, j-1)dfs(grid, i, j+1)dfs(grid, i+1, j)cnt = 0for i in range(len(grid)):for j in range(len(grid[0])):if grid[i][j] == '1':dfs(grid, i, j)cnt += 1return cnt

x的平方根

69-x的平方根
在這里插入圖片描述

class Solution:def mySqrt(self, x: int) -> int:"""二分查找"""left, right = 0, xwhile left <= right:mid = (left + right) // 2if mid * mid <= x:left = mid + 1else:right = mid - 1else:mid = (left + right) // 2return mid

智譜

氣溫變化趨勢

LCP 61. 氣溫變化趨勢
在這里插入圖片描述

class Solution:def temperatureTrend(self, temperatureA: List[int], temperatureB: List[int]) -> int:def trans(t1, t2):"""獲取趨勢"""if t2 > t1:return '+'elif t2 == t1:return '0'else:return '-'occ_cnt, max_occ = 0, 0for i in range(1, len(temperatureA)):if trans(temperatureA[i-1], temperatureA[i]) == trans(temperatureB[i-1], temperatureB[i]):occ_cnt += 1else:max_occ = max(max_occ, occ_cnt)occ_cnt = 0max_occ = max(max_occ, occ_cnt)return max_occ

數組創建二叉樹

from typing import List, Optionalclass TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef array_to_btree(arr: List[Optional[int]], index: int = 0) -> Optional[TreeNode]:"""遞歸地將數組轉換為二叉樹。:param arr: 包含樹節點值的列表,其中 None 代表空節點。:param index: 當前索引,默認從0開始。:return: 二叉樹的根節點。"""if index >= len(arr):return Noneroot = TreeNode(arr[index])root.left = array_to_btree(arr, 2 * index + 1)root.right = array_to_btree(arr, 2 * index + 2)return rootdef preorder_traversal(root: Optional[TreeNode]):"""前序遍歷二叉樹"""if root:print(root.val, end=" ")preorder_traversal(root.left)preorder_traversal(root.right)# 示例數組,表示按層序遍歷的二叉樹
arr = [1, 2, 3, 4, 5, 6, 7]
tree_root = array_to_btree(arr)
print("前序遍歷結果:")
preorder_traversal(tree_root)
# 棧
def array_to_btree(arr: List[Optional[int]]) -> Optional[TreeNode]:"""使用棧將數組轉換為二叉樹。:param arr: 包含樹節點值的列表,其中 None 代表空節點。:return: 二叉樹的根節點。"""if not arr:return Noneroot = TreeNode(arr[0])stack = [(root, 0)]while stack:node, index = stack.pop()left_index, right_index = 2 * index + 1, 2 * index + 2if left_index < len(arr) and arr[left_index] is not None:node.left = TreeNode(arr[left_index])stack.append((node.left, left_index))if right_index < len(arr) and arr[right_index] is not None:node.right = TreeNode(arr[right_index])stack.append((node.right, right_index))return root

蝦皮

多頭自注意力

import torch
import torch.nn as nnclass MultiHeadSelfAttention(nn.Module):def __init__(self, embed_dim, num_heads, dropout=0.1):super(MultiHeadSelfAttention, self).__init__()assert embed_dim % num_heads == 0, "Embedding dimension must be divisible by number of heads"self.num_heads = num_headsself.head_dim = embed_dim // num_headsself.scale = self.head_dim ** 0.5# Linear layers for query, key, and valueself.qkv = nn.Linear(embed_dim, embed_dim * 3)self.out = nn.Linear(embed_dim, embed_dim)self.dropout = nn.Dropout(dropout)def forward(self, x):batch_size, seq_len, embed_dim = x.size()# Generate Q, K, V from inputqkv = self.qkv(x)  # (batch_size, seq_len, embed_dim * 3)qkv = qkv.view(batch_size, seq_len, 3, self.num_heads, self.head_dim)q, k, v = qkv.permute(2, 0, 3, 1, 4)  # (3, batch_size, num_heads, seq_len, head_dim)# Scaled dot-product attentionscores = torch.matmul(q, k.transpose(-2, -1)) / self.scale  # (batch_size, num_heads, seq_len, seq_len)attn = torch.softmax(scores, dim=-1)attn = self.dropout(attn)out = torch.matmul(attn, v)  # (batch_size, num_heads, seq_len, head_dim)out = out.permute(0, 2, 1, 3).contiguous()  # (batch_size, seq_len, num_heads, head_dim)out = out.view(batch_size, seq_len, -1)  # (batch_size, seq_len, embed_dim)# Final linear projectionout = self.out(out)return out# 示例
batch_size = 2
seq_len = 4
embed_dim = 32
num_heads = 4x = torch.randn(batch_size, seq_len, embed_dim)
attention = MultiHeadSelfAttention(embed_dim, num_heads)
output = attention(x)print("Input shape:", x.shape)
print("Output shape:", output.shape)

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

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

相關文章

【MySQL基礎-16】MySQL DELETE語句:深入理解與應用實踐

1. DELETE語句基礎&#xff1a;數據刪除的藝術 在數據庫管理中&#xff0c;DELETE語句是維護數據完整性和清理過期信息的關鍵工具。與日常生活中的"刪除"不同&#xff0c;數據庫中的刪除操作需要更加謹慎和精確&#xff0c;因為數據一旦刪除&#xff0c;恢復可能非常…

python學習筆記(3)——元組

Python3 元組全面詳解 一、元組的定義與特性 基本概念 元組(Tuple)是Python中的不可變序列,用小括號()表示,元素用逗號分隔。與列表不同,元組一旦創建,元素不能修改、添加或刪除(元素本身為可變對象的情況除外)。 不可變性 ? 元組的每個元素的引用不可變,但若元素是可…

Android 中實現一個自定義的 AES 算法

版權歸作者所有&#xff0c;如有轉發&#xff0c;請注明文章出處&#xff1a;https://cyrus-studio.github.io/blog/ 前言 AES&#xff08;Advanced Encryption Standard&#xff0c;高級加密標準&#xff09; 是一種 對稱加密算法&#xff0c;用于加密和解密數據。AES 由 美國…

小河:團隊金牌精準計劃

【趨勢識別與預測】 數據趨勢分析在隨機序列研究中首要價值在于識別潛在規律并提升預測能力。隨機序列常表現為無規則波動&#xff0c;但通過滑動平均、指數平滑、小波變換等方法&#xff0c;可剝離噪聲干擾&#xff0c;提取長期趨勢或周期性成分。例如&#xff0c;在金融時間序…

S32K144外設實驗(七):FTM輸出多路互補帶死區PWM

文章目錄 1. 概述1.1 時鐘系統1.2 實驗目的2. 代碼的配置2.1 時鐘配置2.2 FTM模塊配置2.3 輸出引腳配置2.4 API函數調用1. 概述 互補對的PWM輸出是很重要的外設功能,尤其應用再無刷電機的控制。 1.1 時鐘系統 筆者再墨跡一遍時鐘的設置,因為很重要。 FTM的CPU接口時鐘為SY…

數據結構與算法:算法分析

遇到的問題&#xff0c;都有解決方案&#xff0c;希望我的博客能為您提供一點幫助。 本篇參考《Data Structures and Algorithm Analysis in C》 “在程序設計中&#xff0c;不僅要寫出能工作的程序&#xff0c;更要關注程序在大數據集上的運行時間。” 本章討論要點&#xf…

Redis數據持久化機制 + Go語言讀寫Redis各種類型值

Redis&#xff08;Remote Dictionary Server&#xff09;作為高性能的鍵值存儲系統&#xff0c;憑借其豐富的數據類型和原子性操作&#xff0c;成為現代分布式系統中不可或缺的組件。 1、Redis支持的數據類型 Redis支持的數據類型可歸納為以下9類&#xff1a; String&#x…

排序--歸并排序

一&#xff0c;引言 歸并排序作為七大排序中一種&#xff0c;本文將講解其排序原理和代碼實現。 二&#xff0c;邏輯講解 來看一組動圖&#xff1a; 首先先進行大邏輯的講解&#xff0c;在一個亂序的數組中如圖&#xff1a; 通過遞歸進行一次次分組如圖&#xff1a; 分組邏…

React程序打包與部署

===================== 推薦超級課程: 本地離線DeepSeek AI方案部署實戰教程【完全版】Docker快速入門到精通Kubernetes入門到大師通關課AWS云服務快速入門實戰目錄 為生產環境準備React應用最小化和打包環境變量錯誤處理部署到托管服務部署到Netlify探索高級主題:Hooks、Su…

Spring Data審計利器:@LastModifiedDate詳解(依賴關系補充篇)!!!

&#x1f552; Spring Data審計利器&#xff1a;LastModifiedDate詳解&#x1f525;&#xff08;依賴關系補充篇&#xff09; &#x1f50c; 核心依賴解析 使用LastModifiedDate必須知道的依賴關系 #mermaid-svg-qm1OUa9Era9ktbeK {font-family:"trebuchet ms",verd…

接口測試中數據庫驗證,怎么解決?

在接口測試中&#xff0c;通常需要在接口調用前后查詢數據庫&#xff0c;以驗證接口操作是否正確影響了數據庫狀態。?這可以通過數據庫斷言來實現&#xff0c;PyMySQL庫常用于連接和操作MySQL數據庫。?通過該庫&#xff0c;可以在測試中執行SQL語句&#xff0c;查詢或修改數據…

游戲引擎學習第189天

今天的回顧與計劃 在昨天&#xff0c;我們花了一些時間來優化調試數據的收集方法&#xff0c;并且在調試界面中增加了一些界面代碼&#xff0c;使得我們可以懸停在不同的元素上&#xff0c;查看相關信息。今天的任務是對這些數據進行更多的操作&#xff0c;進行一些有趣的實驗…

智能粉塵監測解決方案|守護工業安全,杜絕爆炸隱患

在廠房轟鳴的生產線上&#xff0c;一粒微小粉塵的聚集可能成為一場災難的導火索。如何實現粉塵濃度的精準監控與快速響應&#xff1f;我們為您打造了一套"感知-預警-處置"全閉環的智能安全方案&#xff01; 行業痛點&#xff1a;粉塵管理的生死線 在金屬加工、化工…

Java 實現將Word 轉換成markdown

日常的開發中&#xff0c;需要將word 等各類文章信息轉換成格式化語言&#xff0c;因此需要使用各類語言將word 轉換成Markdown 1、引入 jar包 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version&g…

Axure設計之中繼器表格——拖動行排序教程(中繼器)

一、原理介紹 在Axure中實現表格行的拖動排序&#xff0c;主要依賴于中繼器的排序事件。然而要實現拖動效果&#xff0c;就必須結合動態面板&#xff0c;因為動態面板可以設置拖動事件&#xff0c;之所以使用動態面板或許是因為它可以更靈活地處理位置變化。用戶拖動行時&…

分布式渲染與云渲染:技術與應用的黃金搭檔

一、核心概念&#xff1a;先區分再關聯 分布式渲染是通過多臺設備并行計算拆分渲染任務的技術&#xff08;如將一幀拆分為 64 個小塊&#xff0c;64 臺電腦同時渲染&#xff09;&#xff1b; 云渲染是基于云計算的渲染服務&#xff0c;本質是分布式渲染的商業化落地—— 用戶無…

鼠標在客戶區內按下左鍵和雙擊右鍵

書籍&#xff1a;《Visual C 2017從入門到精通》的2.6鼠標 環境&#xff1a;visual studio 2022 內容&#xff1a;【例2.44】鼠標在客戶區內按下左鍵和雙擊右鍵 1.創建一個單文檔程序 一個簡單的單文檔程序-CSDN博客https://blog.csdn.net/qq_20725221/article/details/1463…

VMware虛擬機 ubuntu22.04無法與共享粘貼板和拖拽文件的解決方案

VMware虛擬機 ubuntu22.04無法與共享粘貼板和拖拉文件的解決方案 卸載VMware tools安裝open-vm-tools還無法拖拽文件 卸載VMware tools 確保卸載完vmware-tools # 進入vmware-tools安裝目錄/bin sudo vmware-uninstall-tools.pl sudo rm -rf /usr/lib/vmware-tools sudo apt-…

vue3 vue-router 傳遞路由參數

在 Vue 3 中&#xff0c;使用 vue-router 傳遞路由參數是非常常見的需求。 1. 使用動態路由參數&#xff08;params&#xff09; 動態路由參數是定義在路由規則中的占位符部分&#xff0c;例如 /user/:id。你可以通過 router.push 或 <router-link> 傳遞這些參數。 (1…

【Java SE】包裝類 Byte、Short、Integer、Long、Character、Float、Double、Boolean

參考筆記&#xff1a;java 包裝類 萬字詳解&#xff08;通俗易懂)_java包裝類-CSDN博客 目錄 1.簡介 2.包裝類的繼承關系圖 3.裝箱和拆箱 3.1 介紹 3.2 手動拆裝箱 3.3. 自動拆裝箱 ?4.關于String類型的轉化問題 4.1 String類型和基本類型的相互轉化 4.1.1 String —…