国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Leetcode刷題

2019-11-14 08:45:07
字體:
來源:轉載
供稿:網友

485.Max Consecutive Ones

Description Given a binary array, find the maximum number of consecutive 1s in this array. 給定一個二進制數組,找出這個數組中最大的連續1的個數

public class Solution { public int findMaxConsecutiveOnes(int[] nums) { int maxNumber = 0,number = 0; int len = nums.length; //遇0則變0,遇1則加1 for(int i = 0;i < len; i++){ if(nums[i] == 0){ number = 0; } else{ number++; if(maxNumber < number) maxNumber = number; } } return maxNumber; }}public class Solution { public int findMaxConsecutiveOnes(int[] nums) { int maxNumber = 0,number = 0; int len = nums.length; //遇1則加1,遇0則變0 for(int i = 0;i < len; i++){ if(nums[i] == 1){ number ++; } else{ if(number > maxNumber){ maxNumber = number; } number = 0; } } //注意num[len - 1]如果是1的話沒有執行給maxNumber賦值的語句 if(number >maxNumber){ maxNumber = number; } return maxNumber; }}

461. Hamming Distance

Description The Hamming distance between two integers is the number of positions at which the corresponding bits are different. 給定兩個整數,求其對應二進制位上是不同數字的個數。

public int hammingDistance(int x, int y) { int distance = 0; int k = x ^ y; //調用Integer類中的bitcount方法求一個整數的二進制中1的個數 distance = Integer.bitCount(k); return distance; }public int hammingDistance(int x, int y) { int distance = 0; int k = x ^ y; System.out.PRintln(k); while(k != 0){ //和1相與,結果為1則最低位為1,結果為0則最低位為0 if( (k & 1) == 1) distance ++; k = k >> 1;//右移 } return distance;}//逐位異或public int hammingDistance(int x, int y) { int distance = 0; while(x !=0 || y!=0){ if(((x & 1) ^ (y & 1)) == 1){ distance ++; } x = x >> 1; y = y >> 1; } return distance; } //(借鑒)利用遞歸 public int hammingDistance(int x, int y) { if((x ^ y) == 0) return 0; return (x ^ y) % 2 + hammingDistance(x >> 1, y >> 1); }

感想:1. 二進制位運算要充分利用二進制運算符,~,&,|,^(異或,相同為0,不同為1) 2. 巧妙利用遞歸簡化代碼


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郁南县| 旺苍县| 淳化县| 进贤县| 金平| 抚远县| 富民县| 德令哈市| 巍山| 伊通| 阜康市| 苗栗市| 保定市| 佛学| 翁牛特旗| 铜川市| 措勤县| 丁青县| 宜城市| 白山市| 蓬溪县| 夏邑县| 顺平县| 尉犁县| 黄陵县| 犍为县| 安徽省| 博罗县| 昌都县| 康平县| 子长县| 清原| 辽中县| 镶黄旗| 盖州市| 陈巴尔虎旗| 三门县| 萍乡市| 当阳市| 汾西县| 许昌县|