發表文章

目前顯示的是 4月, 2023的文章

LeetCode Dynamic Programming_70. Climbing Stairs(Easy)

題目描述: 你正在爬樓梯。樓梯有 n 階,每次你可以爬 1 階或 2 階。你想要到達樓梯的頂部,有多少種不同的方法可以達到頂部? 可以使用動態規劃的方法來解決這個問題,建立一個長度為 n+1 的數組 dp,其中 dp[i] 表示爬到第 i 階樓梯的不同方法數。 我們可以初始化 dp[0] 為 1,因為爬到第 0 階樓梯的方法只有一種,就是不動。同樣地,dp[1] 也為 1,因為爬到第 1 階樓梯的方法只有一種,就是爬一階。接下來,我們可以使用遞歸關係式來計算 dp[i],即: dp[i] = dp[i-1] + dp[i-2] 這是因為要到達第 i 階樓梯,我們可以從第 i-1 階樓梯爬一階,或者從第 i-2 階樓梯爬兩階。這樣我們就可以不斷地更新 dp 數組,直到計算出 dp[n],它表示到達頂部的不同方法數。 從 n > 2 開始,到達 n - 1 階和 n - 2 階的⽅方法數都已知了了: n - 1 階到達第 n 階只有⼀一種⽅方法:走⼀一次⼀一步 n - 2 階到達第 n 階有兩兩種⽅方法:走兩兩次⼀一步、走⼀一次兩兩步。但第⼀一種⽅方法和 n - 1 階到 n 階重複,不予考慮 承上,到 (n - 1) 及 (n - 2) 後,可以到達 n 的可能選項已被固定,0 -> n ⽅方法數 = 0 -> (n - 1) ⽅方法數 + 0 -> (n - 2) ⽅方法數 Dynamic Programming(DP) 常⽤用思維:a -> b 只有⼀一個選項,代表通往終點的可能選項已經被固定住了了。因為可能選項已經被固定住了了,程式只需計算到前⼀一步。 Dynamic Programming: 每次的運算結果,都是基於此前以同⼀一個邏輯運算的結果   -> f(n) = f(n - 1) + f(n - 2) class Solution { public: int climbStairs(int n) { if (n <= 1) { return 1; // 當 n <= 1 時,只有一種方法 } vector<int> dp(n + 1, 0); dp[0] = 1; d

T-SQL筆記47_RECONFIGURE時候出現_不支援針對系統目錄進行特定更新

圖片
declare @Text as nvarchar(1500)   declare @Cmd  as nvarchar(1000)   set @Text = ' hello world this is a text send by t-sql'   set @Cmd  ='echo ' +  @Text + ' > C:\Test.txt'  execute ..xp_CmdShell  @Cmd 由於嘗試要在t-SQL中做寫檔功能 需開啟xp_CmdShell  權限 起初嘗試的腳本 EXEC sp_configure 'show advanced options', 1;     RECONFIGURE;     EXEC sp_configure 'xp_cmdshell', 1;     RECONFIGURE; 修改後的腳本 EXEC sp_configure 'show advanced options', 1;     RECONFIGURE WITH OVERRIDE ;     EXEC sp_configure 'xp_cmdshell', 1;     RECONFIGURE WITH OVERRIDE ; 終於顯示 組態選項 'show advanced options' 從 1 變更為 1。請執行 RECONFIGURE 陳述式來安裝。 組態選項 'xp_cmdshell' 從 0 變更為 1。請執行 RECONFIGURE 陳述式來安裝。 OK結束這一回合 Ref: 渗透之——SQL Server启动/关闭xp_cmdshell https://blog.51cto.com/binghe001/2925836 xp_cmdshell關閉開啟語法與已封鎖元件 'Ad Hoc Distributed Queries' https://foxa0223.blogspot.com/2011/03/xpcmdshell-ad-hoc-distributed-queries.html xp_cmdshell SQL Server 2012: How to create a text f

T-SQL筆記46_SQL Server 已封鎖元件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 之存取,因為此元件已經由此伺服器的安全性組態關閉。

圖片
  可透過下達指令方式來開啟 -- 首先啟動 Ad Hoc Distributed Queries: exec sp_configure 'show advanced options', 1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries', 1 reconfigure 做有類似需要運行 OpenRowset / OpenDatasource 之類的存取 -- 使用完成後,關閉Ad Hoc Distributed Queries: exec sp_configure 'Ad Hoc Distributed Queries', 0 reconfigure exec sp_configure 'show advanced options', 0 reconfigure Ref: https://ailog.tw/lifelog/2019/12/09/sql-ad-hoc-distributed/ https://zhuanlan.zhihu.com/p/370138931 https://www.cnblogs.com/Summer6/p/11129330.html https://www.kodyaz.com/articles/enable-Ad-Hoc-Distributed-Queries.aspx

PL-SQL筆記1_OracleOracle Database 21c Express Edition下載安裝筆記

圖片
  免費的甲骨文資料庫Oracle Database https://www.oracle.com/tw/database/technologies/xe-downloads.html 在Oracle 21c版本中,由於安全原因, 已不再默認安裝Scott帳號和演示資料庫 。 範例資料庫 https://github.com/oracle/dotnet-db-samples/blob/master/schemas/scott.sql 在 Oracle 中,Schema 與Database之間 每個 Schema 都屬於一個特定的數據庫,而每個數據庫可以包含多個 Schema。 一個數據庫是由多個 Schema 構成的,而每個 Schema 可以包含多個數據庫對象(如表格、視圖、索引等)。當用戶在數據庫中創建對象時,這些對象會被分配到特定的 Schema 中,用戶可以對這些對象進行管理和控制。 Schema 是一個邏輯上獨立的數據庫對象集合,由一個用戶(或多個用戶)擁有。每個Schema可以包含表格、視圖、索引、序列、函數、程序等對象。透過Schema的概念,Oracle 可以將數據庫對象的管理和控制權限進行分離,實現多個用戶對同一個數據庫實例進行管理。 使用Schema的好處是,可以讓不同用戶在同一數據庫中擁有自己的對象集合,以及管理和控制這些對象的權限。在Oracle中,一個用戶可以擁有多個Schema,也可以共享一個Schema。當用戶創建數據庫對象時,Oracle會自動將這些對象分配到對應的Schema中,並為這些對象設置相應的權限和屬性。 練習產生新的schema 有可能會出錯 這是12c以後版本的特徵 ORA-65096: 無效的通用使用者或角色名稱 Create user SCOTT identified by tiger; GRANT CONNECT , RESOURCE TO SCOTT; 登到SCOTT帳號中並建立table相關約束、測試資料 connect SCOTT/tiger show user; CREATE TABLE DEPT (DEPTNO NUMBER( 2 ) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR2( 14 ) , LOC VA