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

成都网络推广网站宁波依众网络科技有限公司

成都网络推广网站,宁波依众网络科技有限公司,舟山公司网站制作,品牌设计公司推荐417. 太平洋大西洋水流问题 水往高处流&#xff0c;先记录两个海祥往高处流所能留到的地址&#xff0c;之后将他们的合并区域进行输出 static const int dirs[4][2] {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};class Solution { public:vector<vector<int>> heights;v…

417. 太平洋大西洋水流问题

水往高处流,先记录两个海祥往高处流所能留到的地址,之后将他们的合并区域进行输出

static const int dirs[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};class Solution {
public:vector<vector<int>> heights;void dfs(int row, int col, vector<vector<bool>> & ocean) {int m = ocean.size();int n = ocean[0].size();if (ocean[row][col]) {return;}ocean[row][col] = true;for (int i = 0; i < 4; i++) {int newRow = row + dirs[i][0], newCol = col + dirs[i][1];if (newRow >= 0 && newRow < m && newCol >= 0 && newCol < n && heights[newRow][newCol] >= heights[row][col]) {dfs(newRow, newCol, ocean);}}}vector<vector<int>> pacificAtlantic(vector<vector<int>>& heights) {this->heights = heights;int m = heights.size();int n = heights[0].size();vector<vector<bool>> pacific(m, vector<bool>(n, false));vector<vector<bool>> atlantic(m, vector<bool>(n, false));for (int i = 0; i < m; i++) {dfs(i, 0, pacific);}for (int j = 1; j < n; j++) {dfs(0, j, pacific);}for (int i = 0; i < m; i++) {dfs(i, n - 1, atlantic);}for (int j = 0; j < n - 1; j++) {dfs(m - 1, j, atlantic);}vector<vector<int>> result;for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (pacific[i][j] && atlantic[i][j]) {result.push_back({i,j});}}}return result;}
};

24. 两两交换链表中的节点

在纸上画一画

class Solution {
public:ListNode* swapPairs(ListNode* head) {ListNode*_head=new ListNode(0);_head->next=head;ListNode*cur=_head;while(cur->next!=nullptr&&cur->next->next!=nullptr){ListNode*tmp=cur->next->next->next;ListNode*tmp1=cur->next->next;cur->next->next->next=cur->next;cur->next->next=tmp;cur->next=tmp1;cur=cur->next->next;}return _head->next;}
};

19.删除链表的倒数第N个节点

class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode*_head=new ListNode(0);_head->next=head;ListNode*cur=_head;int size=0;while(cur->next!=nullptr){cur=cur->next;size++;}size=size-n;cur=_head;while(size--){cur=cur->next;}cur->next=cur->next->next;return _head->next;}
};

还有另外一种写法,双指针快慢,先让快指针走n,然后再让慢指针和快指针一起走,当快指针为null的时候删除慢指针,返回头节点

class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* dummyHead = new ListNode(0);dummyHead->next = head;ListNode* slow = dummyHead;ListNode* fast = dummyHead;while(n-- && fast != NULL) {fast = fast->next;}fast = fast->next; // fast再提前走一步,因为需要让slow指向删除节点的上一个节点while (fast != NULL) {fast = fast->next;slow = slow->next;}slow->next = slow->next->next; // ListNode *tmp = slow->next;  C++释放内存的逻辑// slow->next = tmp->next;// delete nth;return dummyHead->next;}
};

面试题 02.07. 链表相交

很有意思的解法,正常的解法应该是先都过一遍,然后看大家的尺寸
然后,把双方指针移到短指针开始的位置开始比较,相等返回,不相等噶

class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {if (headA == nullptr || headB == nullptr) {return nullptr;}ListNode *pA = headA, *pB = headB;while (pA != pB) {pA = pA == nullptr ? headB : pA->next;pB = pB == nullptr ? headA : pB->next;}return pA;}
};
http://www.yayakq.cn/news/429317/

相关文章:

  • 导航网站怎么做的绍兴网站建设方案托管
  • 上海松江区网站建设云南高端网站制作价格
  • 临清网站制作上海网站建设的价格低
  • 苏州网站建设哪家好网络域名怎么注册
  • 网站开发需要什么什么是网站改版
  • 安卓搭建网站软件工程师资格考试
  • 那个旅游网站可以做行程简洁商城网站模板
  • 网站开发建设价格网站优化布局
  • 查询网站ftp地址全网商机招标官方网站
  • 网站正在建设 mp4深圳做seo有哪些公司
  • 做网站被罚款网站如何做百度权重
  • 微信最火公众号排行网站seo在线诊断
  • 深圳网站设计 商城南宁关键词优化公司
  • 网站和站点的区别wordpress主题module破解版
  • 大连网站制作431即墨公司做网站
  • 做版面的网站如何自己免费建网站
  • 手机酒店网站建设wordpress博客伪静态
  • 招聘网站建设销售合肥做网站推广哪家好
  • 福田住房和建设局网站html演示网站
  • 深圳互助资金盘网站开发优秀品牌策划方案
  • 用什么做php网站赣州做网站的大公司
  • 做网站用什么虚拟主机重庆企业网站建设解决方案
  • 写作网站大全汕头网站建设策划
  • 北京专业网站优化网站需要哪些东西
  • 北京网站建设降龙网络搜狐网站建设的建议
  • 中国公路建设行业协会网站上网络营销专业的就业方向
  • 怎么做刷业网站上海注册公司流程及费用
  • 黑龙江恒泰建设集团网站网络机房建设公司
  • 银川网站建设个人网站效果图咋做
  • 模版网站搭建黑龙江建设工程网