633. 平方數之和(中等)

633. 平方數之和

  • 1. 題目描述
  • 2.詳細題解
  • 3.代碼實現
    • 3.1 Python
    • 3.2 Java
      • 內存溢出溢出代碼
      • 正確代碼與截圖

1. 題目描述

題目中轉:633. 平方數之和
在這里插入圖片描述

2.詳細題解

? ? 本題是167. 兩數之和 II - 輸入有序數組(中等)題目的變型,由兩數之和變為兩數平方之和,判斷是否存在滿足條件的兩個整數a和b,使之平方之和等于給定的整數c。
??對于給定整數c,a和b最小值為0,最大值為c的平方根,因此,兩個雙指針的初始值分別為0和c的平方根(取整數),算法如下:

  • ??Step1:初始化:left=0,right=c的平方根取整;
  • ??Step2:計算left和right指向數字平方之和;
  • ??Step3:如果平方之和等于給定數字c,則中止返回True
  • ??Step4:如果平方之和大于給定數字c,則右指針right減少1,讓平方之和小一點;
  • ??Step5:如果平方之和小于給定數字c,則左指針left增加1,讓平方之和大一點;
  • ??Step6:重復步驟Step2_Step5.

3.代碼實現

3.1 Python

import math
class Solution:def judgeSquareSum(self, c: int) -> bool:left, right = 0 , int(math.sqrt(c))res = Falsewhile left <= right:sum = left ** 2 + right ** 2if sum == c:res = Truebreakelif sum > c:right -= 1else:left += 1return res

在這里插入圖片描述

3.2 Java

  • Java實現需要尤其注意的是,對于數字有數據類型,仔細查看題意要求的數字范圍,因此需要使用long整數類型,否則程序會因為內存溢出導致錯誤結果,如下代碼和截圖所示:

內存溢出溢出代碼

class Solution {public boolean judgeSquareSum(int c) {int left = 0, right = (int) Math.sqrt(c);int total = 0;boolean res = false;while (left <= right){total = left * left + right * right;if (total == c){res = true;break;}else if(total > c){right--;}else{left++;}}return res;}
}

在這里插入圖片描述
??調整整數數據類型,重新debug代碼:

正確代碼與截圖

class Solution {public boolean judgeSquareSum(int c) {long left = 0, right = (long) Math.sqrt(c);long total = 0;boolean res = false;while (left <= right){total = left * left + right * right;if (total == c){res = true;break;}else if(total > c){right--;}else{left++;}}return res;}
}

在這里插入圖片描述

??執行用時不必過于糾結,對比可以發現,對于python和java完全相同的編寫,java的時間一般是優于python的;至于編寫的代碼的執行用時擊敗多少對手,執行用時和網絡環境、當前提交代碼人數等均有關系,可以嘗試完全相同的代碼多次執行用時也不是完全相同,只要確保自己代碼的算法時間復雜度滿足相應要求即可,也可以通過點擊分布圖查看其它coder的code。

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

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

相關文章

數字圖像分析(第二部分)

文章目錄 第8章 圖像分割圖像分割定義閾值分割依賴像素的閾值選取Otsus方法依賴區域的閾值選取依賴坐標的閾值選取變化閾值法區域生長法分裂合并方法分水嶺算法聚類分割算法K-meansAP算法Graph cut第9章 圖像特征表達基于全局特征的圖像表達直方圖GIST基于局部特征的圖像表達簡…

ROS中里程計崩潰的原因分析

里程計節點崩潰可能由多種原因引起&#xff0c;以下是一些可能的因素&#xff1a; 1. **場景特征不足**&#xff1a;如果機器人或車輛所處環境缺乏足夠的特征&#xff08;如在單調、重復紋理的地面或墻面&#xff09;&#xff0c;視覺里程計等定位方法可能因找不到匹配特征而失…

JavaScript通用下載方法,但jpg圖片下載打不開

通用下載方法&#xff0c;通過Blob的方式&#xff0c;訪問Url地址&#xff0c;下載對應的圖片&#xff0c;excel等文件。 axios({method: "get",url,responseType: "blob",}).then((res: any) > {const link document.createElement("a");co…

安裝IIS報錯 0x8024402C

我在windows2012上安裝.NET 運行環境時&#xff0c; 先安裝的sqlserver&#xff0c; 然后提示缺少framework3.5的安裝之類的。 然后又進行IIS和.NET運行庫framework的安裝&#xff0c;結果也提示安裝失敗&#xff0c;錯誤代碼0x8024402C。 我照著網上的幫助卸載了sqlserver 并…

前端打包配置+nginx配置實現部署及部署地址帶特定前綴的幾種方式

前端打包后要部署到服務器&#xff0c;在瀏覽器中可以通過url訪問到我們開發的系統&#xff0c;通過nginx代理在工作中是一種很常用的方式。 這里以本地為例&#xff0c;把本地電腦當作一個服務器&#xff0c;實現普通部署、帶特定前綴等 前端使用vue-clivue作為例子 以下內容…

第2次作業

問題&#xff1a;cs與msf權限傳遞&#xff0c;以及mimikatz抓取win2012明文密碼。 一、CS與MSF權限傳遞 CS&#xff08;Cobalt Strike&#xff09;和MSF&#xff08;Metasploit Framework&#xff09;是兩種常用的滲透測試工具&#xff0c;它們都支持在滲透過程中傳遞權限。以…

1.3 Sqoop 數據同步工具詳細教程

Apache Sqoop 是一個開源工具&#xff0c;用于在 Apache Hadoop 和關系型數據庫&#xff08;如 MySQL、Oracle、PostgreSQL 等&#xff09;之間高效傳輸數據。Sqoop 可以將結構化數據從關系型數據庫導入到 Hadoop 的 HDFS、Hive 和 HBase 中&#xff0c;也可以將數據從 Hadoop …

git 多分支實現上傳文件但避免沖突檢測

文章目錄 背景實現步驟 背景 對于某些通過命令生成的配置文件&#xff08;如 TypeScript 類型文件等&#xff09; 實現步驟 1

背包問題(動歸)

目錄 問能否能裝滿背包&#xff08;或者最多裝多少&#xff09;&#xff1a;dp[j] max(dp[j], dp[j - nums[i]] nums[i]); 對應題目如下&#xff1a; 416.分割等和子集 (物品正序&#xff0c;背包倒序) 問裝滿背包有幾種方法&#xff1a;dp[j] dp[j - nums[i]] &#xff…

父級設置最大寬度,其寬度自適應子級中的內容

父級寬度自適應 1.父級限制最大寬度 2.子級豎著排放,每列的個數明確 3.父級的寬度跟隨子級元素的個數變化寬度 tips: 因為父級要設置"background-color"屬性,所以父級DIV必須要給明確的寬高,這就意味著純CSS自適應寬度無法做到(好吧,是我做不到) HTML <temp…

茴香豆接入微信個人助手部署

將rag產品接入微信工作群&#xff0c;自動回答問題&#xff0c;香嗎&#xff1f;&#xff1f; let‘s go 1、打開openxlab平臺&#xff0c;找到茴香豆web產品應用中心-OpenXLab 點擊進入&#xff0c;設置知識庫名字和密碼 2、上傳知識庫文件和編輯正反例等 3、然后進行測試問答…

電腦開機之后屏幕沒有任何顯示?怎么檢查?

前言 最近有很多小伙伴來咨詢&#xff0c;自己的電腦開機之后&#xff0c;屏幕真的是一點顯示都沒有&#xff0c;只有CPU風扇在轉。 這個情況小白經常經常經常遇到&#xff0c;所以寫一篇關于這個問題的排查教程。按照這個教程來排查&#xff0c;除非真的是硬件損壞&#xff…

算法第八天:leetcode234.回文鏈表

給你一個單鏈表的頭節點 head &#xff0c;請你判斷該鏈表是否為回文鏈表。如果是&#xff0c;返回 true &#xff1b;否則&#xff0c;返回 false 。 示例 1&#xff1a; 輸入&#xff1a;head [1,2,2,1] 輸出&#xff1a;true示例 2&#xff1a; 輸入&#xff1a;head [1,2…

面向對象編程——python

目錄 一、面向對象編程 1.1 類和對象 1.2 繼承 1.3 封裝 1.4 多態 1.5 Python中的面向對象編程 二、類、對象和變量 2.1 類&#xff08;Class&#xff09; 2.2.1 類的屬性&#xff08;Class Attributes&#xff09; 2.2.2 類的方法&#xff08;Class Methods…

對類與對象的(二)補充

1.Date這樣的構造函數 析構函數 拷貝構造 默認構造函數有三種 &#xff1a;全缺省的構造函數 無參的構造函數 和編譯器默認生成的構造函數 class Date {pubilc&#xff1a;void Print&#xff08;&#xff09; { } private&#xff1a;//全缺省的int year1;int month1;int …

二叉樹的廣度優先搜索(層次遍歷)

目錄 定義 層序遍歷的數據結構 實現過程簡述 具體代碼 定義 層序遍歷就是從左到右一層一層地遍歷二叉樹。 層序遍歷的數據結構 層序遍歷需要借用一個輔助數據結構實現&#xff0c;由于隊列具有先進先出的特性&#xff0c;符合一層一層遍歷的邏輯&#xff0c;而棧先進后出…

PHP框架之Laravel框架

Laravel框架詳解 Laravel&#xff0c;作為一款廣受歡迎的PHP Web開發框架&#xff0c;以其優雅、簡潔的語法和強大的功能特性&#xff0c;贏得了全球眾多開發者的青睞。下面&#xff0c;我們將從Laravel的特點、應用案例以及具體的框架使用等方面進行詳細解析。 一、Laravel框…

甲子光年專訪天潤融通CEO吳強:客戶經營如何穿越低速周期?

作者&#xff5c;陳楊、編輯&#xff5c;栗子 社會的發展從來都是從交流和聯絡開始的。 從結繩記事到飛馬傳信&#xff0c;從電話電報到互聯網&#xff0c;人類的聯絡方式一直都在隨著時代的發展不斷進步。只是傳統社會通信受限于技術導致效率低下&#xff0c;對經濟社會產生影…

LLaMA:挑戰大模型Scaling Law的性能突破

實際問題 在大模型的研發中,通常會有下面一些需求: 計劃訓練一個10B的模型,想知道至少需要多大的數據?收集到了1T的數據,想知道能訓練一個多大的模型?老板準備1個月后開發布會,給的資源是100張A100,應該用多少數據訓多大的模型效果最好?老板對現在10B的模型不滿意,想…

退市新規解讀—財務類強制退市

一、退市風險警示&#xff1a;第一年觸及相關指標 上市公司最近一個會計年度觸及下列退市風險指標之一&#xff0c;公司股票或存托憑證被實施退市風險警示(*ST)&#xff1a; 第1項 組合類財務指標 僅發行A股或B股&#xff0c;最近一個會計年度或追溯重述后最近一個會計年度 …