4.13腾讯音乐笔试

#我的实习日记# 求一二题题解
1. 所有好数组的陡峭值只和,试了dfs和dp,爆栈超时
2.二叉树的权值更新
全部评论
#include<iostream> (30316)#include<vector> using namespace std; int mod = 1000000007; long long Mod(long long n) { long long t = 2; long long res = 1; while (n) { if (n % 2 == 1) res = ((res % mod) * t) % mod; t = (t * t) % mod; n = n / 2; } return res % mod; } int main() { long long n; cin >> n; long long sum = ((n - 1) * Mod(n + 1)) % mod; cout << sum << endl; return 0; }
1 回复 分享
发布于 2023-04-13 21:00 重庆
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return TreeNode类 */ int process(int x, int base){ int cn = 0; while(x%base == 0){ x /= base; cn++; } return cn; } typedef pair<int, int>PII; int t[100010], f[100010]; PII dfs(TreeNode* root){ if(!root)return {0, 0}; auto left = dfs(root->left); auto right = dfs(root->right); int val = root->val; int five = process(val, 5); int two = process(val, 2); // if(left.first == -1 || right.first == -1){ // root->val = 0; // return // } root->val = min(left.first+two+right.first, left.second+five+right.second); return {left.first+two+right.first, left.second+five+right.second}; } TreeNode* valueOfTree(TreeNode* root) { // write code here dfs(root); return root; } };
1 回复 分享
发布于 2023-04-13 21:16 辽宁

相关推荐

头发暂时没有的KFC总裁:找廉价劳动力罢了
点赞 评论 收藏
分享
2024-12-20 18:56
已编辑
武汉轻工大学 后端
牛牛大啊:er图都冒出来了😂
点赞 评论 收藏
分享
评论
点赞
5
分享

创作者周榜

更多
牛客网
牛客企业服务