好的网站设计模板房地产市场分析

张小明 2026/1/8 18:52:15
好的网站设计模板,房地产市场分析,做网站过程用文件,网站建设zvge今天又是3道题的一天#xff0c;难度范围#xff1a;★★~★★★★。 今天感觉格外有成就感#xff1a;在不想敲的时候#xff0c;告诉自己先写完这道题#xff0c;最后完成了3道题#xff1b;在第三题做不出来想放弃想问豆包的时候#xff0c;问自己如果这是比赛是面试…今天又是3道题的一天难度范围★★~★★★★。今天感觉格外有成就感在不想敲的时候告诉自己先写完这道题最后完成了3道题在第三题做不出来想放弃想问豆包的时候问自己如果这是比赛是面试哪里来的豆包所以坚持思考最终做了出来。我为自己感到骄傲。一.升序合并文件 ★★★☆☆题目将两个文件A.txt和B.txt各存放一行升序的字母要求把这两个文件的信息按升序合并保存到一个新文件C.txt中。思路这道题整体思路是获取文件内容到字符串中→合并字符串内容→保存到新文件中。1.获取文件内容 char* ReadFile(const char* fileName,int* outLen)1.1 要想获取到文件的内容那么文件必须已经存在且有内容所以在这一步之前需要自己创建好文件并添加内容当然也可以下一个SetFile函数来实现这一步。有了文件和内容之后就可以通过fread来获取文件的内容。1.2 利用字符串保存文件内容需要提前知道文件的长度所以需要先利用fseek和ftell求出文件的长度fileLen。1.3 为结果字符串res申请fileLen1空间并初始化为0不用在保存文件内容后手动添加字符串结束符。利用fread将文件内容存入到字符串中。2.对两个字符串进行合并排序 char* MergeSort(const char* strA, int lenA, const char* strB, int lenB)2.1 字符串作为函数参数时需要同时传递字符串的长度由此可知在获取文件内容的时候还需要获取对应内容的长度这里可以将长度变量的地址作为参数传递即设置一个指针作为参数通过对应指针的值就能获取到文件内容的长度2.2 合并排序的基础是待合并的两个字符串已经有序所以要提前利用一种算法先使读取的文件内容有序我使用的是冒泡排序2.3 接下来通过合并排序的思想实现即可创建长度为lenAlenB1的结果字符串res依次比较两个字符串的个字母将较小的放入res3.利用前几步创建的函数实现将两个文件内容的升序合并到新文件中。先读取文件内容再是内容有序再利用合并函数合并到一个字符串中写入指定文件。代码//设定文件内容——也可以自己手动创建并写入 void SetFILE() { //将升序字母写入 char strA[] hello; char strB[] world; FILE* fpA fopen(A.txt, w); assert(fpA ! NULL); if (fpA NULL) { fclose(fpA); return; } fwrite(strA, sizeof(char), strlen(strA), fpA); fclose(fpA); FILE* fpB fopen(B.txt, w); assert(fpB ! NULL); if (fpB NULL) { fclose(fpB); return; } fwrite(strB, sizeof(char), strlen(strB), fpB); fclose(fpB); } //读取文件内容长度 char* ReadFile(const char* fileName,int* outLen) { assert(fileName ! NULL); if (fileName NULL) { return NULL; } FILE* fp fopen(fileName, r); assert(fp ! NULL); if (fp NULL) { *outLen 0; return NULL; } //求文件的长度 fseek(fp, 0, SEEK_END); long fileLen ftell(fp); fseek(fp, 0, SEEK_SET); char* res (char*)calloc(sizeof(char), fileLen 1); assert(res ! NULL); if (res NULL) { *outLen 0; return NULL; } *outLen (int)fread(res, sizeof(char), fileLen, fp); fclose(fp); return res; } //给字符串排序——冒泡排序 void StrBubbleSort(char* str,int len) { if (len 0) { return; } int i 0; int end len - 1; while (end 0) { while (i len - 1) { if (str[i] str[i1]) { char temp str[i]; str[i] str[i1]; str[i1] temp; } i; } end--; i 0; } } //合并排序 char* MergeSort(const char* strA, int lenA, const char* strB, int lenB,int* outLen) { assert(strA ! NULL strB ! NULL); if (strA NULL || strB NULL) { *outLen 0; return NULL; } int resLen lenA lenB 1; char* res (char*)calloc(sizeof(char), resLen); assert(res ! NULL); if (res NULL) { *outLen 0; return NULL; } int i 0, j 0, k 0; while (i lenA j lenB) { if (strA[i] strB[j]) { res[k] strA[i]; } else { res[k] strB[j]; } } while (i lenA) res[k] strA[i]; while (j lenB) res[k] strB[j]; *outLen resLen; return res; } //合并排序两个文件内容 void MergeFile() { int lenA 0; int lenB 0; char* strA ReadFile(A.txt, lenA); char* strB ReadFile(B.txt, lenB); assert(strA ! NULL strB ! NULL); if (strA NULL || strB NULL) { return; } printf(A.txt:%s\n, strA); printf(B.txt:%s\n, strB); //将字符串用升序排列 StrBubbleSort(strA, lenA); StrBubbleSort(strB, lenB); int fileCLen 0; char* res MergeSort(strA, lenA, strB, lenB, fileCLen); assert(res ! NULL); if (res NULL) { return; } FILE* fp fopen(C.txt, w); assert(fp ! NULL); if (fp NULL) { return; } fwrite(res, sizeof(char), fileCLen, fp); printf(升序合并结果%s 已成功写入C.txt\n, res); fclose(fp); free(strA); free(strB); free(res); } int main() { SetFILE(); MergeFile(); return 0; }复杂度时间复杂度整体时间复杂度由各个函数时间复杂度“相加”后的最高项决定。读取文件O(n)冒泡排序O(n²)合并O(mk)其中m、k是两个字符串的长度所以最终时间复杂度是O(nn²nn)O(n²)。空间复杂度文件读取中动态分配了两个字符串的内存O (m k)归并合并动态分配了结果字符串的内存O (m k)所以最终空间复杂度是O(mk)其中m、k是两个字符串的长度。二.相交链表 ★★☆☆☆题目160. 相交链表 给你两个单链表的头节点headA和headB请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点返回null。我的思路创建一个哈希集合然后先将链表1装入哈希集合遍历链表2如果在哈希集合中找到链表2的节点说明两个链表相交返回相交的节点反之循环结束返回NULL代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { unordered_setListNode* s1; //1.将链表存入哈希表 while(headA ! NULL){ s1.insert(headA); headAheadA-next; } //2.在哈希表中找第二个链表节点 while(headB ! NULL){ //能找到就相交 if(s1.find(headB)!s1.end()){ return headB; } headBheadB-next; } //没找到就不相交 return NULL; } };复杂度m、n分别为两个链表的长度时间复杂度O(mn)。将链表1复制到哈希集合上循环m次在哈希集合中寻找链表2的节点最多循环n次所以时间复杂度为O(mn)。空间复杂度O(m)。哈希集合的空间大小——存储链表 A 的所有节点。官方题解思路——双指针法首先判断两个链表是否为空有一个为空就直接返回NULL。两者都不为空创建两个临时变量分别指向两个链表的头结点然后移动指针当指针移动到最后时使其指向另一条链表的头结点这样以来两者会因为移动的距离相等而指向同一块位置返回此时的位置即可。说明当两个链表不相交时走了一样的距离时都会指向NULL所以此时刚好返回NULL当两个链表相交时最终会在相交节点处相等。也可以去看官方题解的说明很详细。代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if(headANULL || headBNULL){ return NULL; } ListNode* pheadA; ListNode* qheadB; while(p ! q){ //循环→两指针移动距离一样→相等则相交不相等ze p pNULL ? headB :p-next; q qNULL ? headA : q-next; } return p; } };复杂度时间复杂度O(mn)。最坏情况下两个指针会遍历两个链表的长度mn要么在最后一个节点相交返回对应节点要么不相交返回NULL。空间复杂度O(1)。只有指针变量的空间常数级。三.多数元素 ★★★★☆题目169. 多数元素给定一个大小为n的数组nums返回其中的多数元素。多数元素是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的并且给定的数组总是存在多数元素。说明其实这道题的大体思路不难就是记录每个数的个数将个数一半的输出但是我卡在了怎么降低时间复杂度上。一开始我尝试用multiset就是可以重复元素的哈希集合自带的count函数将countlen/2的输出但是这个函数最坏情况下的时间复杂度就是O(n)它又是在给multiset赋值的循环中所以时间复杂度为O(n²)在遇到很极端的用例时运行就会超时。然后我想破脑袋想到了哈希表可以存放两个元素所以我把其中的key用来保存数组元素value用来保存对应元素的个数这样一来时间复杂度就下来了。我的思路利用哈希表其中的key用来保存数组元素value用来保存对应元素的个数。遍历数组如果在哈希表中找到了对应元素就将value同时判断value是否len/2大于直接退出循环输出这个数反之令value为1表示个数为1。代码class Solution { public: int majorityElement(vectorint nums) { int lennums.size(); if(len2){ return nums[0]; } int res0; unordered_mapint,int map; for(int i0;ilen;i){ if(map.find(nums[i])!map.end()){ map[nums[i]]; if(map[nums[i]]len/2){ resnums[i]; break; } }else{ map[nums[i]]1; } } return res; } };复杂度时间复杂度O(n)。空间复杂度O(n)。最坏情况下哈希表长度为n/2因为一定存在多数元素所以数组最多有n/2个元素。官方题解思路1——哈希表我的思路和这个大差不差但是在循环中有些许差异。1.不用通过find查找后再修改value直接对map[nums[i]]; 即可因为当nums[i]不存在时nums[i]会自动插入且value会自动初始化为0然后自增。2.不找个数大于len/2的数而找个数最多的数使用打擂台的方法维护最大的值即遍历哈希映射中的所有键值对返回值最大的键。代码class Solution { public: int majorityElement(vectorint nums) { unordered_mapint, int counts; int majority 0, cnt 0; for (int num: nums) { counts[num]; if (counts[num] cnt) { majority num; cnt counts[num]; } } return majority; } };复杂度思路2——排序将数组元素升序排列因为多数元素是指个数数组长度n的一半的元素所以下标为n/2的元素一定是多数。这个思路真的绝果然最后编程考的还是数学思维。代码class Solution { public: int majorityElement(vectorint nums) { sort(nums.begin(),nums.end()); return nums[nums.size()/2]; } };复杂度时间复杂度O(nlogn)。将数组排序的时间复杂度为 O(nlogn)。空间复杂度O(logn)。如果使用语言自带的排序算法需要使用 O(logn) 的栈空间。如果自己编写堆排序则只需要使用 O(1) 的额外空间。官方还有三种方法但我今天就到这了下次再续。思路3——随机化思路4——分治思路5——Boyer-Moore 投票算法
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

东莞seo网站制作报价wordpress裁剪失败

大模型突破:DeepSeek-OCR掀起视觉记忆革命,重新定义AI信息处理范式 【免费下载链接】DeepSeek-OCR DeepSeek-OCR是一款以大语言模型为核心的开源工具,从LLM视角出发,探索视觉文本压缩的极限。 项目地址: https://ai.gitcode.com…

张小明 2026/1/7 19:11:35 网站建设

网站安全备案西安做网站的公司有

“兄弟,35岁的程序员,是不是真就成了职场弃子?” 深夜的电话里,老李的声音像泡透了的茶,沙哑得没一点力气。就在24小时前,他刚从任职五年的大厂外包岗离开——这个手握211学历、写了十二年Java的老程序员&a…

张小明 2026/1/7 19:11:32 网站建设

只做外贸的公司网站网站开发 太原

IIS安全设计、监控与内容管理全解析 1. IIS安全设计概述 IIS(Internet Information Services)在Windows Server 2003中提供多种服务,包括Web、FTP、SMTP和NNTP服务。网站可分为公共互联网网站、企业内部网网站和企业外部网网站,不同类型的网站需要不同的安全设计。 - 公…

张小明 2026/1/7 19:11:30 网站建设

商务网站策划书网站超链接怎么做 word

数字产科管理平台是为医院产科量身定制的信息管理系统,旨在提高医院产科的服务质量和管理效率。该平台全面覆盖了孕妇从怀孕开始到生产结束以及产后42天以内的一系列医院保健服务信息。以下是数字产科管理平台的详细介绍:一、系统组成数字产科管理平台主…

张小明 2026/1/7 21:50:14 网站建设

泉州网站seo做境外盈利网站违法吗

[极客大挑战 2019]Havefun 先f12看眼源码,发现有提示 get传参为dog会回显 [ACTF2020 新生赛]Include 点进tips问我们能找到flag吗 结合题目是文件包含并且url有可控传参读取flag 直接读读不到,先考虑 "php://input"伪协议 POST发送PHP代码的…

张小明 2026/1/7 21:50:12 网站建设

建设银行租房网站湖北项目网站的建设有两种模式

为什么Google坚持推广TensorFlow?背后的战略布局 在AI技术从实验室走向千行百业的今天,一个看似简单的问题却值得深思:为什么PyTorch已经在学术圈几乎一统天下,Google却仍在不遗余力地投入和推广TensorFlow? 答案不在代…

张小明 2026/1/7 21:50:10 网站建设