欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 挑战力扣高难度算法、数据库题

挑战力扣高难度算法、数据库题

2026/5/1 3:09:10 来源:https://blog.csdn.net/qq_40704513/article/details/142305639  浏览:    关键词:挑战力扣高难度算法、数据库题

一.算法类

1622题,困难,奇妙序列
class Fancy {
public:static const int MOD = 1e9 + 7;long long M_total; // cumulative multiplicative factorlong long A_total; // cumulative additive factorvector<long long> val; // original valuesvector<long long> M_i; // multiplicative factor at time of appendvector<long long> A_i; // additive factor at time of appendFancy() {M_total = 1;A_total = 0;}// Function to compute x^y % MODlong long modPow(long long x, long long y) {long long result = 1;x %= MOD;while (y > 0) {if (y % 2 == 1)result = result * x % MOD;x = x * x % MOD;y /= 2;}return result;}// Function to compute modular inverse of a modulo MODlong long modInverse(long long a) {return modPow(a, MOD - 2);}void append(int val_) {val.push_back(val_);M_i.push_back(M_total);A_i.push_back(A_total);}void addAll(int inc) {A_total = (A_total + inc) % MOD;}void multAll(int m) {M_total = (M_total * m) % MOD;A_total = (A_total * m) % MOD;}int getIndex(int idx) {if (idx >= val.size())return -1;long long v_i = val[idx];long long M_i_inv = modInverse(M_i[idx]);long long M = M_total * M_i_inv % MOD;long long A_i_mul_M = A_i[idx] * M % MOD;long long A = (A_total - A_i_mul_M + MOD) % MOD;long long result = (v_i * M % MOD + A) % MOD;return (int)result;}
};

通关截图 

-------------------------------------------------------------------------------------------------------------------------------

2043题,中等,简易银行系统
class Bank {
public:vector<long long> balance; // 存储每个账户的余额Bank(vector<long long>& balance_) {balance = balance_; // 初始化账户余额}bool transfer(int account1, int account2, long long money) {// 检查账户是否有效if (account1 < 1 || account1 > balance.size() || account2 < 1 || account2 > balance.size())return false;// 检查账户1的余额是否足够if (balance[account1 - 1] < money)return false;// 执行转账操作balance[account1 - 1] -= money;balance[account2 - 1] += money;return true;}bool deposit(int account, long long money) {// 检查账户是否有效if (account < 1 || account > balance.size())return false;// 执行存款操作balance[account - 1] += money;return true;}bool withdraw(int account, long long money) {// 检查账户是否有效if (account < 1 || account > balance.size())return false;// 检查账户余额是否足够if (balance[account - 1] < money)return false;// 执行取款操作balance[account - 1] -= money;return true;}
};

通关截图

 

------------------------------------------------------------------------------------------------------------------------------- 

二.数据库

        262题,困难,行程和用户
SELECTt.request_at AS Day,ROUND(AVG(t.status IN ('cancelled_by_driver', 'cancelled_by_client')), 2) AS 'Cancellation Rate'
FROMTrips t
JOIN Users cu ON t.client_id = cu.users_id AND cu.banned = 'No'
JOIN Users du ON t.driver_id = du.users_id AND du.banned = 'No'
WHEREt.request_at BETWEEN '2013-10-01' AND '2013-10-03'
GROUP BYt.request_at;

通关截图      

        

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词