hungyi_Lee_ML
李宏毅ML2022HW01通过Middle Baseline只需要对于特征选择部分进行一定的更改就行,将前四天的所有特征和结果都选取上
1feat_idx = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,53,69,86,101]
Strong Baseline
调整神经网络架构,加入L2正则化
12345678 self.layers = nn.Sequential( nn.Linear(input_dim, 16), nn.LeakyReLU(0.1), nn.Linear(16, 8), nn.LeakyReLU(0.1), nn.Linear(8, 1) ) optimizer = torch.optim.RMSprop(model.parameters(),lr=config['learn ...
LEETCODE3258
3258.统计满足K约束的子字符串数量I
思路滑动窗口检验是否超过k,显然右端点非单调递减
Solutions1234567891011121314151617class Solution {public: int countKConstraintSubstrings(string s, int k) { int n=s.size(); vector<array<int,2>>v(n+1); for(int i=1;i<=n;++i){ v[i][0]=v[i-1][0]+(s[i-1]=='0'); v[i][1]=v[i-1][1]+(s[i-1]=='1'); } int ans=0; for(int i=1,j=1;i<=n&&i<=j;++i){ while(i<=n&a ...
LEETCODE540
540. 有序数组中的单一元素
思路二分查找
根据数组有序可以知道,如果前面没有插入单个的元素
那么偶数位置上面的数字应该等于偶数位置+1的数
奇数位置的数等于奇数位置减一位置上的数
如果不相等那么就说明前面插入了单个的元素,更新r
Solutions123456789101112131415161718class Solution {public: int singleNonDuplicate(vector<int>& nums) { int n = nums.size(); int l = 0, r = n - 1; while (l < r) { int mid = (l + r) >> 1; if (mid % 2 == 0) { if (mid + 1 < n && nums[mid] == nums[mid + 1]) l = mid + 1; ...
LEETCODE3255
3254. 长度为 K 的子数组的能量值 I
思路记录nums[i-1]+1==nums[i]的数量,与k作比较即可
然后把答案放在正确位置的数组上,剩下初始化为-1
Solutions123456789101112class Solution {public: vector<int> resultsArray(vector<int>& nums, int k) { vector<int>ans(nums.size()-k+1,-1); int cnt=0; for(int i=0;i<nums.size();++i){ cnt=(i==0||nums[i-1]+1==nums[i]?cnt+1:1); if(cnt>=k)ans[i-k+1]=nums[i]; } return ans; }};
LEETCODE3222
3222. 求出硬币游戏的赢家
思路判断一下哪个先用完
Solutions1234567class Solution {public: string losingPlayer(int x, int y) { if(min(x,y/4)&1)return "Alice"; else return "Bob"; }};
LEETCODE633
633. 平方数之和
思路根据费马平方和定理:一个非负整数c能够被表示为两个整数的平方和,当且仅当c的所有形如4k+3的质因子的幂次均为偶数
Solutions123456789101112131415161718192021222324252627class Solution {public: bool judgeSquareSum(int c) { for (int base = 2; base * base <= c; base++) { // 如果不是因子,枚举下一个 if (c % base != 0) { continue; } // 计算 base 的幂 int exp = 0; while (c % base == 0) { c /= base; exp++; ...
LEETCODE638
638. 大礼包
思路设dp[needs]表示每个物品数量为$needs_{i}$的最低价格
那么有两种转移方式:
购买大礼包
首先需要考虑所有物品的需要的数量都需要小于大礼包中物品的数量才能进行购买
$dp[needs]=min(dp[needs-needs_{i}]+price_{i})$,i表示大礼包的下标
直接购买商品
考虑记忆化搜索
Solutions123456789101112131415161718192021222324252627282930313233343536class Solution {public: vector<int> needs_; vector<int> price_; vector<vector<int> > special_; int n; map<vector<int>, int> dp; int shoppingOffers(vector<int>& price, vector< ...
LEETCODE3226
3226. 使两个整数相等的位更改次数
思路模拟,位运算
Solutions12345678910111213141516class Solution {public: int minChanges(int n, int k) { int cnt=0; for(int i=31;i>=0;i--){ if((n>>i)&1!=(k>>i)&1){ if(!((k>>i)&1)){ n&=~(1<<i); cnt++; } } } if(n==k)return cnt; else return -1; }};
MIT6-S081-LAB1
XV6 LABLab2: system calls前置知识首先还是学习前置的知识并且阅读源代码
proc结构体用于维护每个进程的状态等进程相关的信息
12345678910111213141516171819202122// Per-process statestruct proc { struct spinlock lock;// 自旋锁(1) // p->lock must be held when using these: 因为可能有多个进程同时访问某个进程的这些状态变量 enum procstate state; // Process state struct proc *parent; // Parent process void *chan; // If non-zero, sleeping on chan(2) int killed; // If non-zero, have been killed int xstate; ...
LEETCODE3259
3259. 超级饮料的最大强化能量
思路很容易想到DP的解法,所以考虑优化
显然当前的状态只和前一个小时的状态,或隔一个小时之前的状态有关,所以并不需要数组实现,只需要保存三个变量就可以
一个变量用于保存两个小时前的状态,剩下两个变量用于表示一个小时前的状态,按顺序更新就可以实现
Solutions12345678910111213141516class Solution {public: long long maxEnergyBoost(vector<int>& energyDrinkA, vector<int>& energyDrinkB) { int n = (int)energyDrinkA.size(); long long A = energyDrinkA[0], B = energyDrinkB[0], Z = 0; for (int i = 1; i < n; ++i) { long long a = max(A, Z) + ...