【算法挨揍日記】day03——雙指針算法_有效三角形的個數、和為s的兩個數字

??

611. 有效三角形的個數

611.?有效三角形的個數icon-default.png?t=N6B9https://leetcode.cn/problems/valid-triangle-number/

題目描述:

給定一個包含非負整數的數組?nums?,返回其中可以組成三角形三條邊的三元組個數。

解題思路:

本題是一個關于三角形是否能成立的題目,首先我們假設三角形的三邊(a,b,c),我們要保證兩邊之和大于第三邊

?

?題目給我們nums是亂序的,如果我們一個個abc去實驗就是會超時(時間復雜度O^3)

當我們將sort排序一下,這樣的話假設a<b<c的情況下,我們就只要去判斷a+b>c是否成立!

這里我們遍歷每個c(從后往前),這樣時間復雜度就變成了N^2+NlogN也就是N^2

解題代碼:

class Solution {
public:int triangleNumber(vector<int>& nums) {sort(nums.begin(),nums.end());//假設a<b<cint num=0;int n=nums.size();for(int i=n-1;i>=2;i--){int left=0;int right=i-1;while(left<right){if(nums[left]+nums[right]>nums[i]){num+=(right-left);right--;}else{left++;}}}return num;}
};

??劍指 Offer 57.?和為s的兩個數字

劍指 Offer 57.?和為s的兩個數字icon-default.png?t=N6B9https://leetcode.cn/problems/he-wei-sde-liang-ge-shu-zi-lcof/

題目描述:

輸入一個遞增排序的數組和一個數字s,在數組中查找兩個數,使得它們的和正好是s。如果有多對數字的和等于s,則輸出任意一對即可。

解題思路:?

首先本題是升序數組,這里如果我們用暴力的話會超時

這里我們使用雙指針,我們讓一個指向頭left一個指向尾right,這里left、right和target會有三種關系

我們假設sub=right-left

?第一種情況很顯然直接返回就好了我們來研究一下第二種和第三種情況:

解題代碼:

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {int n=nums.size();int left=0;int right=n-1;while(nums[right]>target){right--;}while(left<right){int sub=target-nums[right];if(sub==nums[left]){return {nums[left],nums[right]};}else if(sub>nums[left]){left++;}else//sub<nums[left]{right--;}}return {-1,-1};}
};

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43376.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43376.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43376.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

淺談Fetch API

什么是Fetch API Fetch API 是一種現代的 JavaScript API&#xff0c;用于進行網絡請求和處理響應數據。它提供了一種更簡單和更靈活的方式來執行網絡請求&#xff0c;取代了傳統的 XMLHttpRequest&#xff08;XHR&#xff09;。 Fetch API 具有以下特點&#xff1a; Promise…

概述、搭建Redis服務器、部署LNP+Redis、創建Redis集群、連接集群、集群工作原理

Top NSD DBA DAY09 案例1&#xff1a;搭建redis服務器案例2&#xff1a;常用命令限案例3&#xff1a;部署LNPRedis案例4&#xff1a;創建redis集群 1 案例1&#xff1a;搭建redis服務器 1.1 具體要求如下 在主機redis64運行redis服務修改服務運行參數 ip 地址192.168.88.6…

【問題整理】Ubuntu 執行 apt-get install xxx 報錯

Ubuntu 執行 apt-get install xxx 報錯 一、問題描述: 執行apt-get install fcitx時&#xff0c;報如下錯誤 grub-pc E: Sub-process /usr/bin/dpkg returned an error code (1)二、解決方法: 嘗試修復依賴問題&#xff1a; sudo apt-get -f install這個命令會嘗試修復系統…

Elasticsearch:如何在 Ubuntu 上安裝多個節點的 Elasticsearch 集群 - 8.x

Elasticsearch 是一個強大且可擴展的搜索和分析引擎&#xff0c;可用于索引和搜索大量數據。 Elasticsearch 通常用于集群環境中&#xff0c;以提高性能、提供高可用性并實現數據冗余。 在本文中&#xff0c;我們將討論如何在 Ubuntu 20.04 上安裝和配置具有多節點集群的 Elast…

關于Linux Docker springboot jar 日志時間不正確 問題解決

使用Springboot項目的jar&#xff0c;制作了一個Docker鏡像&#xff0c;啟動該鏡像后發現容器和容器中的Springboot 項目的日志時間不正確。 解決 查看容器時間命令為&#xff1a; docker exec 容器id date 1. 容器與宿主機同步時間 在啟動鏡像時候把操作系統的時間通過&q…

SpringBoot創建和使用

spring core的方式來寫代碼還是比較繁瑣的&#xff0c;而spring boot就是幫助程序員使用spring開發的一個腳手架&#xff08;boot&#xff09;&#xff0c;它是一個用于構建Java應用程序的開源框架&#xff0c;旨在簡化開發流程并提高生產效率。它的主要優點有&#xff1a; 快速…

CSS簡介

目錄 CSS CSS概念 核心概念 為什么需要CSS 語法 CSS的引入方式 內聯樣式&#xff08;行內樣式&#xff09; 內部樣式 外部樣式&#xff08;推薦&#xff09; CSS CSS概念 CSS&#xff08;Cascading Style Sheets&#xff09;層疊樣式表&#xff0c;又叫級聯樣式表&am…

【Vue-Router】導航守衛

前置守衛 main.ts import { createApp } from vue import App from ./App.vue import {router} from ./router // import 引入 import ElementPlus from element-plus import element-plus/dist/index.css const app createApp(App) app.use(router) // use 注入 ElementPlu…

ShowMeBug CEO李亞飛受邀參加深圳青年創新創業系列沙龍電子信息專場

7月13日下午&#xff0c;由深圳市科技交流服務中心&#xff08;深圳市科技專家委員會辦公室&#xff09;主辦&#xff0c;深圳新一代產業園承辦的“2023深圳青年創新創業系列沙龍——電子信息專場”活動舉行。ShowMeBug CEO李亞飛受邀參加此次活動。 深圳市科學技術協會黨組成員…

微信小程序真機調試異常cmdId 1006, errCode-50011-已解決

cmdId 1006, errCode-50011 起因 小程序在模擬器上預覽沒問題,真機調試和體驗版首頁打不開,點展開顯示cmdId 1006, errCode-50011 解決 查了下1006, 說是廣告, 我沒接廣告,這個也不是錯誤碼 1006廣告組件被駁回你的廣告正在被審核,無法展現廣告后來找到幾個類似的帖子…

arm開發板 GDB遠程調試方法

1.前言 1.在linux下開發&#xff0c;免不了使用gdb調試&#xff0c;但是linux下開發嵌入式&#xff0c;都是跑在ARM板子上的&#xff0c;網上有很多GDB的基礎教程&#xff0c;但是能在ARM開發板用的時候&#xff0c;會有各種問題。 比如&#xff1a;*.cpp: No such file or di…

Android su

1. userdebug和user版本 2. 關閉selinux system/core diff --git a/init/selinux.cpp b/init/selinux.cpp index 5a0255acd..787917274 100644--- a/init/selinux.cpp b/init/selinux.cpp -104,6 104,8 EnforcingStatus StatusFromCmdline() { } bool IsEnforcing() { …

元宇宙時代超高清視音頻技術白皮書關于流媒體協議和媒體傳輸解讀

流媒體協議 元宇宙業務場景對流媒體傳輸的實時性和互動性提出了更高的要求&#xff0c;這就需要在傳統的 RTMP、SRT、 HLS 等基礎上增加實時互動的支持。實時互動&#xff0c;指在遠程條件下溝通、協作&#xff0c;可隨時隨地接入、實時地傳遞虛實融合的多維信息&#xff0c;身…

萬賓燃氣管網監測解決方案,守護城市生命線安全

方案背景 城市燃氣管網作為連接天然氣長輸管線與天然氣用戶的橋梁&#xff0c;擔負著向企業和居民用戶直接供氣的重要職責。隨著城市燃氣需求的急劇增加&#xff0c;城市燃氣管網規模日趨龐大&#xff0c;安全隱患和風險也隨之增加。目前&#xff0c;我國燃氣管網的運行仍存在…

Mathematica(42)-計算N個數值的和

比如&#xff0c;我們要用Mathematica求得到下面的式子&#xff1a; 這就需要用到一個函數&#xff1a;Sum 具體地&#xff0c;Sum函數的使用形式如下&#xff1a; 因此&#xff0c;按照公式就可以得到下面的結果&#xff1a; 如果&#xff0c;我們想要將求和號也加進去&#…

Jenkins的流水線啟動jar后未執行問題處理

現象 在流水線里配置了啟動腳本例如&#xff0c;nohup java -jar xxx.jar >nohup.out 2>&1 & 但是在服務器發現服務并未啟動,且nohup日志里沒輸出日志,這樣的原因是jenkins在執行完腳本后&#xff0c;就退出了這個進程。 在啟動腳本執行jar命令的上一步加入以下…

【AIGC 訊飛星火 | 百度AI|ChatGPT| 】智能對比

AI智能對比 &#x1f378; 前言&#x1f37a; 概念類對比&#x1f375; 訊飛&#x1f375; 百度AI&#x1f375; chatGPT &#x1f379; 功能類對比? 訊飛? 百度AI? chatGPT &#x1f943; 可輸入字數對比&#x1f964; 百度AI&#x1f964; 訊飛&#x1f964; chatGPT &…

【Django】Task1安裝python環境及運行項目

【Django】Task1安裝python環境及運行項目 寫在最前 8月份Datawhale組隊學習&#xff0c;在這個群除我佬的時代&#xff0c;寫一下blog記錄學習過程。 參考資源&#xff1a; 學習項目github&#xff1a;https://github.com/Joe-2002/sweettalk-django4.2 隊長博客&#xff1a…

RocketMQ 消息消費 輪詢機制 PullRequestHoldService

1. 概述 先來看看 RocketMQ 消費過程中的輪詢機制是啥。首先需要補充一點消費相關的前置知識。 1.1 消息消費方式 RocketMQ 支持多種消費方式&#xff0c;包括 Push 模式和 Pull 模式 Pull 模式&#xff1a;用戶自己進行消息的拉取和消費進度的更新Push 模式&#xff1a;Broker…

探索心律失常:病因、診斷與治療以及與腸道菌群的關聯

谷禾健康 你是否有時會感到心悸、心慌、胸悶、氣短、頭暈、乏力&#xff1f;你是否有時感覺自己的心跳過快或過慢&#xff1f; 如果有上述情況&#xff0c;就要引起重視了&#xff0c;你可能存在心律失常。心律失常是最常見的心臟疾病之一&#xff0c;涉及到心臟的電活動節奏異…