建行手机网站网址是多少钱网页制作的超文本标记语言称为

张小明 2026/3/2 18:19:59
建行手机网站网址是多少钱,网页制作的超文本标记语言称为,招聘网站开发成本,哈 做网站目录 410.分割数组的最大值 4.寻找两个正序数组的中位数 51.N皇后 410.分割数组的最大值 这个题可以运用二分答案的算法来解题。定义一个左指针和一个右指针#xff0c;令左指针等于数组的最大值#xff0c;令右指针等于数组所有数之和。即最终的结果一定在他们之间。 lo…目录410.分割数组的最大值4.寻找两个正序数组的中位数51.N皇后410.分割数组的最大值这个题可以运用二分答案的算法来解题。定义一个左指针和一个右指针令左指针等于数组的最大值令右指针等于数组所有数之和。即最终的结果一定在他们之间。long long l 0, r 0; for (int i 0; i nums.size(); i) { r nums[i]; if (l nums[i]) { l nums[i]; } }定义一个返回值ans。然后进行二分。long long ans0; while(lr) { long long mid(lr)/2; if(cheak(mid,nums,k)) { ansmid; rmid-1; } else { lmid1; } }这个题的cheak函数里面需要定义一个值ans初始为1和求和变量sum然后遍历数组进行求和当sum大于mid的时候那么ans就进行加一给sum重新赋值。最后进行判断ans与k的大小。bool cheak(long long mid,vectorint nums,int k) { long long sum0; int ans1; for(int i0;inums.size();i) { if(sumnums[i]mid) { ans; sumnums[i]; } else sumnums[i]; } return ansk; }完整代码class Solution { public: int splitArray(vectorint nums, int k) { long long l 0, r 0; for (int i 0; i nums.size(); i) { r nums[i]; if (l nums[i]) { l nums[i]; } } long long ans0; while(lr) { long long mid(lr)/2; if(cheak(mid,nums,k)) { ansmid; rmid-1; } else { lmid1; } } return ans; } bool cheak(long long mid,vectorint nums,int k) { long long sum0; int ans1; for(int i0;inums.size();i) { if(sumnums[i]mid) { ans; sumnums[i]; } else sumnums[i]; } return ansk; } };4.寻找两个正序数组的中位数这个题首先考虑数组是否为空。int n1 nums1.size(); int n2 nums2.size(); int n n1 n2; if (n1 0 || n2 0) { if (n1 0 n2 0) { return 0; } else if (n1 0) { if (n2 % 2 1) return nums2[n2 / 2]; else return (nums2[n2 / 2 - 1] nums2[n2 / 2]) / 2.0; } else { if (n1 % 2 1) return nums1[n1 / 2]; else return (nums1[n1 / 2 - 1] nums1[n1 / 2]) / 2.0; } }判断之后进行查找那个中位数。首先需要判断两个数组加起来的数是奇数还是偶数。如果是奇数只需要找一个n/21就可以了。偶数需要找n/21和n/2。else { if (n % 2 1) { return twocz(nums1, nums2, n / 2 1); } else { return (twocz(nums1, nums2, n / 2) twocz(nums1, nums2, n / 2 1)) / 2.0; } }进行查找首先我们要定义一个a和b指向两个数组的初始位置。设需要找的中位数位置为k。令num1[min(ak/2-1,num1.size()-1)]和num2[min(bk/2-1,num2.size()-1)]比较大小。小的那一个可以直接排除掉。所以k进去排除的部分。一直进行循环。直到anum1.size()或bnum2.size()或k1;返回相应的值。int twocz(vectorint nums1, vectorint nums2, int k) { int n nums1.size(); int m nums2.size(); int a 0; int b 0; while (1) { if (a n) { return nums2[b k - 1]; } if (b m) { return nums1[a k - 1]; } if (k 1) { return min(nums1[a], nums2[b]); } int c min(a k / 2 - 1, n - 1); int d min(b k / 2 - 1, m - 1); int j1 nums1[c]; int j2 nums2[d]; if (j1 j2) { k - c - a 1; a c 1; } else { k - d - b 1; b d 1; } } }完整代码int twocz(vectorint nums1, vectorint nums2, int k) { int n nums1.size(); int m nums2.size(); int a 0; int b 0; while (1) { if (a n) { return nums2[b k - 1]; } if (b m) { return nums1[a k - 1]; } if (k 1) { return min(nums1[a], nums2[b]); } int c min(a k / 2 - 1, n - 1); int d min(b k / 2 - 1, m - 1); int j1 nums1[c]; int j2 nums2[d]; if (j1 j2) { k - c - a 1; a c 1; } else { k - d - b 1; b d 1; } } } class Solution { public: double findMedianSortedArrays(vectorint nums1, vectorint nums2) { int n1 nums1.size(); int n2 nums2.size(); int n n1 n2; if (n1 0 || n2 0) { if (n1 0 n2 0) { return 0; } else if (n1 0) { if (n2 % 2 1) return nums2[n2 / 2]; else return (nums2[n2 / 2 - 1] nums2[n2 / 2]) / 2.0; } else { if (n1 % 2 1) return nums1[n1 / 2]; else return (nums1[n1 / 2 - 1] nums1[n1 / 2]) / 2.0; } } else { if (n % 2 1) { return twocz(nums1, nums2, n / 2 1); } else { return (twocz(nums1, nums2, n / 2) twocz(nums1, nums2, n / 2 1)) / 2.0; } } } };51.N皇后这个题运用了剪枝回溯法 定义三个bool变量分别判断列和两个对角线。之后与全排列相似。完整代码const int N10; bool f1[10],f2[NN],f3[NN],f4[NN]; void dfs(vectorvectorint z,int n,int x,vectorint arr) { if(xn) { z.push_back(arr); } for(int i1;in;i) { if(x1-i0) { if(!f1[i]!f2[x1-i]!f4[x1i]) { f1[i]true; f2[x1-i]true; f4[x1i]true; arr[x]i; dfs(z,n,x1,arr); f1[i]false; f2[x1-i]false; f4[x1i]false; } } else { if(!f1[i]!f3[i-x-1]!f4[x1i]) { f1[i]true; f3[i-x-1]true; f4[x1i]true; arr[x]i; dfs(z,n,x1,arr); f1[i]false; f3[i-x-1]false; f4[x1i]false; } } } } class Solution { public: vectorvectorstring solveNQueens(int n) { vectorvectorint z; vectorint arr; for(int i0;in;i) { arr.push_back(0); } dfs(z,n,0,arr); vectorvectorstring s; for(int i0;iz.size();i) { vectorstrings1; for(int j0;jn;j) { string s2; int az[i][j]; for(int z0;zn;z) { if(za-1) s2.push_back(Q); else s2.push_back(.); } s1.push_back(s2); } s.push_back(s1); } return s; } };
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

wordpress 多站点迁移长春模板自助建站

3大突破:智能检索工具如何彻底改变你的实验复现流程 【免费下载链接】LightRAG "LightRAG: Simple and Fast Retrieval-Augmented Generation" 项目地址: https://gitcode.com/GitHub_Trending/li/LightRAG 还在为学术实验的复现难题而苦恼吗&…

张小明 2025/12/27 4:32:29 网站建设

网站由哪些部分组成部分组成部分组成深圳公众号制作

目录已开发项目效果实现截图开发技术介绍系统开发工具:核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式&…

张小明 2026/1/7 0:29:37 网站建设

无锡网站设计公司东莞网站推广定制公司

RDP Wrapper实现Windows远程连接扩展的完整指南 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap 你是否曾经遇到过这样的尴尬时刻:想要同时连接多台Windows设备,却发现家庭版系统无法满足你的…

张小明 2025/12/25 16:52:20 网站建设

做网站和app报价腾讯云加wordpress教程

第一章:Cirq代码补全机制的核心原理Cirq 是由 Google 开发的开源量子计算框架,其代码补全机制依赖于 Python 的类型注解与 IDE 的静态分析能力相结合,为开发者提供高效、准确的编程辅助。该机制不仅提升开发效率,还减少因语法或接…

张小明 2025/12/31 5:05:17 网站建设

网站建设分哪几种打开网站代码怎么写

第一章:物流量子 Agent 的成本变革背景传统物流系统长期面临运营成本高、路径优化效率低、资源调度响应慢等核心挑战。随着全球供应链复杂度上升,企业对实时决策与动态调配的需求日益迫切。在这一背景下,物流量子 Agent(Logistics…

张小明 2026/1/12 1:18:39 网站建设

o2o网站建设流程做外贸营销型网站

Booster性能优化完整指南:从入门到精通的Android应用加速方案 【免费下载链接】booster 🚀Optimizer for mobile applications 项目地址: https://gitcode.com/gh_mirrors/bo/booster 🚀 Booster 作为Android应用性能优化的终极解决方…

张小明 2025/12/25 23:09:40 网站建设