免费的培训网站建设中国建设网官方网站洞庭湖治理

web/2025/9/28 16:10:33/文章来源:
免费的培训网站建设,中国建设网官方网站洞庭湖治理,一个人0资金怎么创业,wordpress仪表盘关闭系列综述#xff1a; #x1f49e;目的#xff1a;本系列是个人整理为了秋招面试的#xff0c;整理期间苛求每个知识点#xff0c;平衡理解简易度与深入程度。 #x1f970;来源#xff1a;材料主要源于LeetCodeHot100进行的#xff0c;每个知识点的修正和深入主要参考… 系列综述 目的本系列是个人整理为了秋招面试的整理期间苛求每个知识点平衡理解简易度与深入程度。 来源材料主要源于LeetCodeHot100进行的每个知识点的修正和深入主要参考各平台大佬的文章其中也可能含有少量的个人实验自证。 结语如果有帮到你的地方就点个赞和关注一下呗谢谢 【C】秋招实习面经汇总篇 文章目录 基本算法链表篇160. 相交链表234. 回文链表141. 环形链表142. 环形链表 II21. 合并两个有序链表19. 删除链表的倒数第 N 个结点2. 两数相加24. 两两交换链表中的节点25. K 个一组翻转链表148. 排序链表146. LRU 缓存 树篇基本概述二叉树深度优先遍历二叉树广度优先遍历226. 翻转二叉树101. 对称二叉树543. 二叉树的直径108. 将有序数组转换为二叉搜索树108. 将有序数组转换为二叉搜索树98. 验证二叉搜索树 树相关题目 参考博客 点此到文末惊喜↩︎ 基本算法 双指针适合线性表哈希法适合去重和查找while中记录并自增然后进行结点处理滑动窗口模板中类似链表基本模板 #include iostream using namespace std;// 结点模板 templatetypename T struct Node {T data;Node *next;Node() : next(nullptr) {}Node(const T d) : data(d), next(nullptr) {} };// 删除 p 结点后面的元素 templatetypename T void Remove(NodeT *p) {// 确定两边安全性然后删除中间if (p nullptr || p-next nullptr) return;auto tmp p-next-next;delete p-next;p-next tmp; }//在 p 结点后面插入元素 templatetypename T void Insert(NodeT *p, const T data) {auto tmp new NodeT(data);tmp-next p-next;p-next tmp; }//遍历链表 templatetypename T, typename V void Traverse(NodeT *p, const V vistor) {while(p ! nullptr) {vistor(p); // 函数指针灵活处理p p-next;} }int main() {// 建立 链表结点auto p new Nodeint(1);// 插入 链表结点Insert(p, 2);// 遍历 链表求和int sum 0;Traverse(p, [sum](const Nodeint *p) - void { sum p-data; });// 删除 链表Remove(p);return 0; }链表篇 160. 相交链表 问题 给你两个单链表的头节点 headA 和 headB 请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点返回 nullptr 思路 相差同移法先求出长度差值然后长的移动差值次再同时移动哈希法先将一个存入哈希表另一个开始遍历哈希表第一个找到另一个即为第一个。交换遍历法pa走到头后从headB开始走。pb走到头后从headA开始走。这样交替走路两个到相同结点的长度是一样的 // 交换遍历 ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode *pa headA;ListNode *pb headB;while (pa ! pb) {(pa nullptr) ? pa headB : pa pa-next;(pb nullptr) ? pb headA : pb pb-next;}return pa; }总结 注意if-else的条件分支是否分离判断查找和去重就思考哈希 234. 回文链表 问题 给你一个单链表的头节点 head 请你判断该链表是否为回文链表。如果是返回 true 否则返回 false 。最大值 。链表题目通常不能使用数组进行处理 思路 链表常用模板组合 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ class Solution {public boolean isPalindrome(ListNode head) {if(head null || head.next null) return true;// 找中点 11 1232 12342ListNode A_end mid(head);ListNode B_start A_end.next;A_end.next null;// 翻转后半部分B_start reverse(B_start);// 比对boolean res compare(head, B_start);// 还原A_end.next reverse(B_start);return res;}// 链表找中点快慢指针法ListNode mid(ListNode head) {ListNode p head;ListNode q head;while(q.next ! null q.next.next ! null) {p p.next;q q.next.next;}return p;}// 链表反转模板ListNode reverse(ListNode head) { // 三人行模板ListNode pre null;ListNode cur head;while(cur ! null) {ListNode temp cur.next; // 松手先保存cur.next pre;pre cur; // 归位cur temp;}return pre;}// 链表比对模板(len(B) len(A))boolean compare(ListNode A, ListNode B) {while(B ! null) {if(A.val ! B.val) return false;A A.next;B B.next;}return true;} }141. 环形链表 问题 给你一个链表的头节点 head 判断链表中是否有环。 思路 每次快指针移动两步慢指针移动一步同时移动直到快慢指针相遇即可。 // 查找使用hash存储然后遍历环进行处理 bool hasCycle(ListNode *head) {ListNode* fast head;ListNode* slow head;while (true) {if (fast nullptr || fast-next nullptr) return false;fast fast-next-next;slow slow-next;if (fast slow) break;}return true;}判断环的长度快慢指针相遇后继续移动直到第二次相遇。两次相遇间的移动次数即为环的长度判断环的入口快慢指针相遇后慢指针不动另取一指针p指向链表头结点然后节点p和节点slow同时移动每次移动一步二者相遇时指向的节点即为环的入口节点。 142. 环形链表 II 问题 给定一个链表的头节点 head 返回链表开始入环的第一个节点。 如果链表无环则返回 null。 思路 判断环的入口快慢指针相遇后慢指针不动另取一指针p指向链表头结点然后节点p和节点slow同时移动每次移动一步二者相遇时指向的节点即为环的入口节点。 ListNode *detectCycle(ListNode *head) {ListNode* fast head;ListNode* slow head;while (true) {if (fast nullptr || fast-next nullptr) return nullptr;fast fast-next-next;slow slow-next;if (fast slow) break;}fast head;while (slow ! fast) {slow slow-next;fast fast-next;}return fast; }21. 合并两个有序链表 问题 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 思路 虚拟头节点的使用 ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {ListNode *vhead new ListNode(-1, nullptr);ListNode *tail vhead;while (list1 ! nullptr list2 ! nullptr) {ListNode *p;if (list1-val list2-val) {p list1;list1 list1-next;}else {p list2;list2 list2-next;}// 条件判断中共同的部分分离出来tail-next p;tail tail-next;} list1 nullptr ? tail-next list2 : tail-next list1;return vhead-next; }19. 删除链表的倒数第 N 个结点 问题 给你一个链表删除链表的倒数第 n 个结点并且返回链表的头结点。 思路 虚拟头节点的使用删除结点要使用保存其前一个结点的指针 ListNode* removeNthFromEnd(ListNode* head, int n) {if(n 0 || head nullptr)return nullptr;// 快慢指针拉开n个节点的距离ListNode *vHead new ListNode(0);vHead-next head;ListNode *slow vHead;ListNode *fast vHead;// 让slow指向被删除节点的前一个while(n--){fast fast-next;}// 同步移动while(fast-next ! nullptr){fast fast-next;slow slow-next;}// 删除节点slow-next slow-next-next;return vHead-next; }2. 两数相加 问题 给你两个 非空 的链表表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的并且每个节点只能存储 一位 数字。请你将两个数相加并以相同形式返回一个表示和的链表。 思路 通过进位carry和补充虚拟结点从而实现算法的统一处理 class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {/* 定义一个新的链表用于存储求和的结果 */ListNode* dummyHead new ListNode(0);ListNode* cur dummyHead;/* 定义一个变量用于保存进位 */int carry 0;/* 因为不知道l1和l2的长短所以只要有一个没有遍历完就继续遍历 遍历完的就不执行 *//* * 第一次写while(l1 || l2)会错因为漏掉了最后一个进位《 特别哟注意*/while(l1 || l2 || carry){/* 只要不为空就继续求和 */if(l1 ! NULL) carry l1-val;if(l2 ! NULL) carry l2-val;/* 创建一个节点插入到新的链表并且值初始化为l1-vall2-val的个位数 */ListNode* tmp new ListNode(carry%10);/* 插入结点tmp因为是从头开始插入所以只需要每次更新cur */cur-next tmp;cur cur-next;/* 只要链表不为空就继续遍历下一个节点 */if(l1 ! NULL) l1 l1-next;if(l2 ! NULL) l2 l2-next;/* 获取上个节点的进位值 加到下个节点的运算中 */carry / 10;}/* 注意这里不返回dummyHead因为这里相当于一个虚拟头节点 下一个才是正真的头节点 */return dummyHead-next;} };总结 补充虚拟的从而将算法进行统一化处理 24. 两两交换链表中的节点 问题 给你一个链表两两交换其中相邻的节点并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题即只能进行节点交换 思路 每次确定两个结点的前一个结点并进行交互处理 ListNode* swapPairs(ListNode* head){// 带安全检查的交换结点auto swap_list [](ListNode *prev){if (prev ! nullptr prev-next ! nullptr prev-next-next ! nullptr) {ListNode *front prev-next;ListNode *back front-next;front-next back-next;back-next front;prev-next back;}};if(head nullptr)return nullptr;// 单链表插/删虚拟三件套ListNode* vHead new ListNode(-1);vHead-next head; ListNode *cur vHead;while(cur-next ! nullptr cur-next-next ! nullptr){swap_list(cur);cur cur-next-next;}return vHead-next; }总结 使用auto匿名函数封装链表基本操作 25. K 个一组翻转链表 问题 给你链表的头节点 head 每 k 个节点一组进行翻转请你返回修改后的链表。 算法 栈可以用来处理逆序问题 ListNode* reverseKGroup(ListNode* head, int k) {stackListNode* stk;ListNode* resnew ListNode;ListNode* pres,*q;int i;while(head){for(i0;headik;i){//k个一组进栈stk.push(head);headhead-next;}if(i!k)break;//不成一组跳出while(!stk.empty()){//逆序出栈p-nextstk.top();pstk.top();stk.pop();}qhead;}p-nextq;//接上余下的点return res-next; }148. 排序链表 问题 给你链表的头结点 head 请将其按 升序 排列并返回 排序后的链表 思路 归并 ListNode* sortList(ListNode* head) {ListNode dummyHead(0);dummyHead.next head;auto p head;int length 0;while (p) {length;p p-next;}for (int size 1; size length; size 1) {auto cur dummyHead.next;auto tail dummyHead;while (cur) {auto left cur;auto right cut(left, size); // left-- right---...cur cut(right, size); // left-- right-- cur--...tail-next merge(left, right);while (tail-next) {tail tail-next;}}}return dummyHead.next; } // 分离链表 ListNode* cut(ListNode* head, int n) {// p指向链表的第n个auto p head;while (--n p) {p p-next;}if (p nullptr) return nullptr;// 返回链表后的结点并将该段链表分离auto next p-next;p-next nullptr;return next; } // 合并两个有序链表 ListNode* merge(ListNode* l1, ListNode* l2) {ListNode dummyHead(0);auto p dummyHead;while (l1 l2) {if (l1-val l2-val) {p-next l1;p l1;l1 l1-next; } else {p-next l2;p l2;l2 l2-next;}}p-next (l1 ? l1 : l2);return dummyHead.next; }146. LRU 缓存 树篇 基本概述 二叉树数据结构struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {} };二叉树深度优先遍历 递归式// 前序遍历 void Traversal(TreeNode *root) {if (root nullptr) return ;Doing(root-val); // 中Traversal(root-left); // 左Traversal(root-right); // 右 } // 中序遍历 void Traversal(TreeNode *root) {if (root nullptr) return ;Traversal(root-left); // 左Doing(root-val); // 中Traversal(root-right); // 右 } // 后序遍历 void Traversal(TreeNode *root, vectorint vec) {if (root nullptr) return ;Traversal(root-left); // 左Traversal(root-right); // 右vec.emplace_back(root-val);// 中 }非递归将前序、中序和后序统一化处理将遍历核心顺序进行逆序转化 算法遍历部分的逆序对于值节点的处理 vectorint Traversal(TreeNode* root) {// 初始化vectorint result; // 结果容器stackTreeNode* st; // 深度的栈if (root ! NULL) // 根非空则入栈st.push(root);// 遍历源容器while (!st.empty()) {TreeNode* node st.top(); // if (node ! NULL) {st.pop();// 算法变化的部分遍历的逆序// 中st.push(node); st.push(NULL);// 右if (node-right) st.push(node-right); // 左if (node-left) st.push(node-left); } else {// 对值节点的处理st.pop();// 弹出空值结点node st.top();st.pop();// 结点处理result.push_back(node-val);}}return result; }二叉树广度优先遍历 递归法// 递归参数如果需要修改要进行引用传递 void traversal(TreeNode* cur, vectorvectorint result, int depth) {// 递归出口if (cur nullptr) return;// 递归体if (result.size() depth) // 扩容result.push_back(vectorint());// 原地构建数组result[depth].push_back(cur-val);// 顺序压入对应深度的数组中order(cur-left, result, depth 1);order(cur-right, result, depth 1); } vectorvectorint levelOrder(TreeNode* root) {// 初始化一般为递归形参vectorvectorint result;int depth 0;// 递归调用traversal(root, result, depth);// 返回结果return result; }非递归法 vectorvectorint levelOrder(TreeNode* root) {// 初始化vectorvectorint result; // 结果容器queueTreeNode* que; // 广度的队列if(root ! nullptr) // 根非空则入列 que.push(root);// 算法while (!que.empty()) { // 队列非空vectorint vec; // 结果存放TreeNode* node; // 过程记录int size que.size(); // 初始化记录每层要遍历的根节点数量for (int i 0; i size; i) { // que.size()会变化// 处理结点node que.front(); // 记录队首结点que.pop(); // 弹出队首结点if (node-left) que.push(node-left);if (node-right) que.push(node-right);// doing处理结点vec.push_back(node-val);}// 将每层筛选元素压入结果数组中result.push_back(vec);}// 输出return result; }226. 翻转二叉树 给你一棵二叉树的根节点 root 翻转这棵二叉树并返回其根节点。思路 前序遍历 void traversal(TreeNode *cur){// 结束条件if(cur nullptr)return ;swap(cur-left, cur-right);if(cur-left) traversal(cur-left);if(cur-right) traversal(cur-right); }101. 对称二叉树 给你一个二叉树的根节点 root 检查它是否轴对称。思路 单层条件尝试 bool ismirror(TreeNode* t1,TreeNode* t2){if(t1NULLt2NULL)//都为空return true;if(t1NULL||t2NULL)//有一个为空return false;return (t1-valt2-val)ismirror(t1-left,t2-right)ismirror(t1-right,t2-left); }543. 二叉树的直径 问题 给你一棵二叉树的根节点返回该树的 直径 。二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 思路 最长一定是以某个结点为根节点的子树的左右子树高度之和 int diameterOfBinaryTree(TreeNode* root) {int distance 0;dfs(root, distance);return distance; }// distance等价于全局变量 int dfs(TreeNode *root, int distance){if (root nullptr)return 0;int left dfs(root-left, distance); // 左边深度int right dfs(root-right, distance); // 右边深度distance max(left right, distance); // // 获取当前树的左子树和右子树深度的较大值加 1 本层深度return max(left, right) 1; // 最大深度 }108. 将有序数组转换为二叉搜索树 问题 给你一个整数数组 nums 其中元素已经按 升序 排列请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 思路 建根和划分 TreeNode* Translate(vectorint nums, int left, int right) {if (left right) return nullptr;// 建根int mid left ((right - left) / 2);TreeNode *root new TreeNode(nums[mid]);// 划分root-left Translate(nums, left, mid-1);root-right Translate(nums, mid1, right);// 返回return root; }108. 将有序数组转换为二叉搜索树 问题 给你一个整数数组 nums 其中元素已经按 升序 排列请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 思路 建根和划分 TreeNode* Translate(vectorint nums, int left, int right) {if (left right) return nullptr;// 建根int mid left ((right - left) / 2);TreeNode *root new TreeNode(nums[mid]);// 划分root-left Translate(nums, left, mid-1);root-right Translate(nums, mid1, right);// 返回return root; }98. 验证二叉搜索树 问题 给你一个二叉树的根节点 root 判断其是否是一个有效的二叉搜索树。对值不超过 1 的二叉树。 思路 二叉树的中序遍历是递增顺序的判断左小右大 // 中序递增 long pre MIN_ ; public boolean isValidBST(TreeNode root) {if (root null) {return true;}// 访问左子树if (!isValidBST(root.left)) {return false;}// 访问当前节点如果当前节点小于等于中序遍历的前一个节点说明不满足BST返回 false否则继续遍历。if (root.val pre) { // 严格递增return false;}pre root.val;// 访问右子树return isValidBST(root.right); }树相关题目 少年我观你骨骼清奇颖悟绝伦必成人中龙凤。 不如点赞·收藏·关注一波 点此跳转到首行↩︎ 参考博客 前缀和问题 单调队列 快速链表quicklist《深入理解计算机系统》侯捷C全系列视频 待定引用 待定引用 待定引用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

域名暂无法进行网站备案做交易网站什么开发语言

装饰模式使用对象组合的方式动态改变或增加对象行为。 Go语言借助于匿名组合和非入侵式接口可以很方便实现装饰模式。 使用匿名组合,在装饰器中不必显式定义转调原对象方法。 decorator.go package decoratortype Component interface {Calc() int }type Concre…

一个公司网站备案福田欧辉氢燃料电池客车

前言JSFinder是一款优秀的github开源工具,这款工具功能就是查找隐藏在js文件中的api接口和敏感目录,以及一些子域名。 github链接: Code1https://github.com/Threezh1/JSFinder

电子商务网站建设模板宿迁房产网宿迁市区房屋出售

面试题-TS(一):TypeScript是什么?它与JavaScript有什么区别? TypeScript是一种编程语言,它是JavaScript的超集。它通过添加静态类型、类、接口和模块等功能来扩展JavaScript。 JavaScript是一种广泛应用于Web开发的脚本语言,它的灵活性和…

加拿大网站后缀wordpress从入门

请求上下文和应用上下文详解 一、背景二、什么是上下文2.1、请求上下文2.2、应用上下文2.3、两种上下文的底层逻辑 三、写在最后 一、背景 在如何实现异步发送邮件的时候,遇到过这样一个报错 RuntimeError: Working outside of request context.This typically me…

win7下用iis搭建网站专业网站开发联系方式

外贸行业在Zoho的客户群体中占比较高。因为我们的国际化背景、丰富的产品组合、多语言多币种跨时区、高性价比等特点,成为外贸企业开展业务的选择。在和外贸客户沟通中,发现无论是外贸大拿还是新手小白,大家遇到一个共同的问题——发出去的开…

网站备案 更改ip小程序与手机网站区别

联想ThinkPad笔记本广告向苹果MacBook Air开战 [url]http://www.sina.com.cn[/url] 2008年03月24日 07:21 新浪科技联想ThinkPad X300笔记本广告,暗讽苹果MacBook AirMacbook Air最厚的地方仅有1.94cm,边缘仅0.4cm视频:ThinkPad X300对比Mac…

江西网站搜索引擎优化加速器网页版

气泡堆叠图是堆叠图与气泡图的组合—在堆叠图每根柱子上方添加大小不同的气泡,用于表示另外一个数据变量(如每根柱子各组分的平均值)的大小。 本文利用自己制作的BarBubble工具,进行气泡堆叠图的绘制,先来看一下成品效…

南京建设工程管理局网站公司网站建设模块简介

功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外部供…

重庆网站建设运营深圳金科威公司官网

介绍 使用sql语句修改字段名。 命令 alter table 表名 change 旧字段名 新字段名 新数据类型;例子 将a表id字段名改为id1 alter table a change id id1 int(12) NOT NULL;

莱芜网站优化排名公司无锡网站建设有限公司

两者的区别需要通过提交表单后才看得出来,主要是在数据发送方式和接收方式上 1.在客户端,Get方式在通过URL提交数据,就是把表单内的元素,转化成url参数提交,比如你有一个页面index.html,这个页面有一个文本…

中国建设银行网站首页签约网站版块策划

变量 $ 定义变量 $link-color: blue;变量名可以与css中的属性名和选择器名称相同 使用变量 a {color: $link_color; }$highlight-border: 1px solid $link_color;中划线和下划线相互兼容,即中划线声明的变量可以使用下划线的方式引用,反之亦然。 $li…

网站换服务器对网站排名有影响吗宁波seo自然优化技术

要在Docker中修改镜像源,你需要编辑或创建Docker的配置文件来指定新的镜像源地址。以下是如何为Docker配置中国镜像源的步骤: 找到或创建Docker的配置文件daemon.json。 在Linux系统中,该文件通常位于/etc/docker/目录下。 编辑daemon.jso…

瀑布流网站如何seo曲阳网站制作公司

命令设计模式(Command Pattern)在Java中的实现细节如下所述,这将是一个详细的教程,涵盖模式的基本概念、组成部分、实现步骤、以及如何在实际开发中应用这一模式。 命令设计模式基础 命令模式是一种行为设计模式,它将请求封装成对象,允许你参数化客户对请求的调用,队列…

网站建设费钱吗搭建一个网站要多少

【算法】一类支持向量机OC-SVM 前言一类支持向量机OC-SVM 概念介绍示例编写数据集创建实现一类支持向量机OC-SVM完整的示例输出 前言 由于之前毕设期间主要的工具就是支持向量机,从基础的回归和分类到后来的优化,在接触到支持向量机还有一类支持向量机的…

开展农业信息网站建设工作域名怎么做网站

进制 进制也就是进位制,是人们规定的一种进位方法对于任何一种进制—X进制,就表示某一位置上的数运算时是逢X进一位 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位…

零壹网站建设新闻页面设计

介绍 Apache Superset 是一个现代的企业级商业智能 Web 应用程序。它快速、轻量、直观,并加载了各种选项,使所有技能的用户都可以轻松探索和可视化他们的数据,从简单的饼图到高度详细的 Deck.gl 地理空间图表。 安装 首先安装自制homebrew安…

网站建设中备案网络运营推广是做什么的

C语言的基本构成 知识点:C语言的注释;关键字;书写风格;常量和变量 重要程度:★★★★ 1、C语言的良好风格 用C语言编写的程序,称为C语言源程序,简称C程序。 本节将通过一个简单的C程序例子&…

免费网站建设链接很长 知呼wordpress加广告位

文章目录 [SpringBoot] 后端工程化1 需求2 开发流程3 RequestController 类(操作类)3.1 简单参数(形参名和请求参数名一致)3.2 简单参数(形参名和请求参数名不一致)3.3 复杂实体参数3.4 数组参数3.5 集合参…

音乐设计网站推荐河南工程招标网站

现代城市作为一个复杂系统,牵一发而动全身,城市化进程中产生新的矛盾和社会问题都会影响整个城市系统的正常运转。智慧城市是应对这些问题的策略之一。城市工作要树立系统思维,从构成城市诸多要素、结构、功能等方面入手,系统推进…

网站seo优化技术入门wordpress 点赞分享

在windows环境下修改pip镜像源的方法(以python3为例) 1.在windows文件管理器中,输入 %APPDATA% 2.会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件 3.在新建的pip.ini文件中输入以下内容,搞定 [glob…