当前位置: 首页 > news >正文

国家级一流本科专业建设点搜索引擎优化的各种方法

国家级一流本科专业建设点,搜索引擎优化的各种方法,wordpress 用ip访问不了,企业网站建设实训建议本文涉及的基础知识点 二分查找 题目 以字符串的形式给出 n , 以字符串的形式返回 n 的最小 好进制 。 如果 n 的 k(k>2) 进制数的所有数位全为1,则称 k(k>2) 是 n 的一个 好进制 。 示例 1: 输入:n “13” 输出:“3” …

本文涉及的基础知识点

二分查找

题目

以字符串的形式给出 n , 以字符串的形式返回 n 的最小 好进制 。
如果 n 的 k(k>=2) 进制数的所有数位全为1,则称 k(k>=2) 是 n 的一个 好进制 。
示例 1:
输入:n = “13”
输出:“3”
解释:13 的 3 进制是 111。
示例 2:
输入:n = “4681”
输出:“8”
解释:4681 的 8 进制是 11111。
示例 3:
输入:n = “1000000000000000000”
输出:“999999999999999999”
解释:1000000000000000000 的 999999999999999999 进制是 11。
参数范围
n 的取值范围是 [3, 10^18]
n 没有前导 0

分析

值相等,进制越小,位数越多。进制最小是2,1018大约是264次方,放宽些,假定最大长度为70
求最小的k,也就是最大的位数对应的进制
主函数,从大到小尝试各位数能否存在好进制
Is函数利用二分法判断是否存k进制的m位1刚好等于n,如果存在则返回k,否则返回0。
由于n>=3,所以11一定是好进制。也就是本题一定有解。
Cmp函数:k进制的m个1和n的大小比较,n大返回正数,相等返回0,n小返回负数。llHas记录当前位的值。
注意:各值的范围

代码

class Solution {
public:
string smallestGoodBase(string n) {
long long llN = 0;
for (const auto& ch : n)
{
llN = (llN * 10 + ch - ‘0’);
}
for (int i = 70; i > 2; i–)
{
long long llRet = Is(i, llN);
if (llRet > 0 )
{
return std::to_string(llRet);
}
}
return std::to_string(llN-1);
}
long long Is(int m, long long n)
{
long long left = 2, right = n + 1;
while (right - left > 0 )
{
const auto mid = left + (right - left) / 2;
const auto llRet = Cmp(mid, m, n);
if (0 == llRet)
{
return mid;
}
if (llRet > 0)
{
left = mid+1;
}
else
{
right = mid;
}
}
return 0;
}
//k进制的m个1和n的大小比较,n大返回正数,相等返回0,n小返回负数
long long Cmp(long long k, int m, long long n)
{
long long llHas = 1;
for (; m > 0; m–)
{
if (n < llHas)
{
return -1;
}
n -= llHas;
if (m > 1)
{// 最后一次llHas并不使用,所以越界不影响
if (LLONG_MAX / k < llHas)
{
return -1;
}
llHas *= k;
}
}
return n;
}
};

测试用例

template
void Assert(const T& t1, const T& t2)
{
assert(t1 == t2);
}

template
void Assert(const vector& v1, const vector& v2)
{
if (v1.size() != v2.size())
{
assert(false);
return;
}
for (int i = 0; i < v1.size(); i++)
{
Assert(v1[i] ,v2[i]);
}
}

int main()
{
Solution slu;
string res;
res = slu.smallestGoodBase(“470988884881403701”);
Assert(res, std::string(“686286299”));
res = slu.smallestGoodBase(“2251799813685247”);
Assert(res, std::string(“2”));
res = slu.smallestGoodBase(“13”);
Assert(res, std::string(“3”));
res = slu.smallestGoodBase(“4681”);
Assert(res, std::string(“8”));
res = slu.smallestGoodBase(“1000000000000000000”);
Assert(res, std::string(“999999999999999999”));
res = slu.smallestGoodBase(“1333”);
Assert(res, std::string(“36”));
res = slu.smallestGoodBase(“463381”);
Assert(res, std::string(“463380”));

//CConsole::Out(res);

}

扩展阅读

视频课程

有效学习:明确的目标 及时的反馈 拉伸区(难度合适),可以先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771

如何你想快

速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

相关下载

想高屋建瓴的学习算法,请下载《喜缺全书算法册》doc版
https://download.csdn.net/download/he_zhidan/88348653

充满正能量得对大家说
闻缺陷则喜是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
墨家名称的来源:有所得以墨记之。
算法终将统治宇宙,而我们统治算法。《喜缺全书》

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开

发环境: VS2022 C++17

http://www.ds6.com.cn/news/9352.html

相关文章:

  • 简单网站设计模板免费推广产品的平台
  • 网站用什么技术做怎样把个人介绍放到百度
  • 工作做ppt课件的网站如何在百度上添加自己的店铺
  • 网站图片加alt百度快照查询
  • 申请域名建立网站小说关键词提取软件
  • 山西省住房建设厅网站首页成人短期技能培训
  • 什么网站可以做动图sem是什么显微镜
  • 做照片的网站有哪些软件seo品牌推广方法
  • 电子商务网站建设实训总结网络推广哪家做得比较好
  • 可以做网站引导页的页面电商seo
  • 网站信息系统设计中国十大教育培训机构有哪些
  • author 1 wordpress网站如何做关键词优化
  • 免费做电子邀请涵的网站网络软文广告
  • 武清区网站建设搜索引擎关键词怎么选
  • 百度云服务器搭建网站步骤天津百度网站快速优化
  • 公司网站建设需要些什么要求seo网站排名全选
  • 股票海选公司用什么网站外贸营销网站建设介绍
  • 公司做网站能够带来的好处使用软件提高百度推广排名
  • 国内新闻最新消息台湾外贸seo公司
  • 做ui要上那些网站网站流量数据分析
  • 北京网站建设哪家比较好游戏推广是什么工作
  • 潍坊公司网站模板建站东莞seo外包公司
  • 网站建设高级开发语言百度排名工具
  • 小程序制作平台价格厦门seo外包服务
  • 网站建设中模版vivo应用商店
  • 国内做新闻比较好的网站seo和网络推广有什么区别
  • 体育西网站开发方案网络营销专业课程
  • 网站建设 网站开发互联网产品营销策划方案
  • 《动态网站建设》在线测试公司做个网站多少钱
  • 西宁网站建设官网爱链在线