1. 程式人生 > 其它 >程式設計題集

程式設計題集

技術標籤:Openlab

一、陣列

1.1、簡單

第1題 可被 5 整除的二進位制字首

給定由若干 0 和 1 組成的陣列 A。我們定義 N_i:從 A[0] 到 A[i] 的第 i 個子陣列被解釋為一個二進位制數(從最高有效位到最低有效位)。
返回布林值列表 answer,只有當 N_i 可以被 5 整除時,答案 answer[i] 為 true,否則為 false。
示例1:
輸入:[0,1,1]
輸出:[true,false,false]
解釋:
輸入數字為 0, 01, 011;也就是十進位制中的 0, 1, 3 。只有第一個數可以被 5 整除,因此 answer[0] 為真。
示例 2:
輸入:[1,1,1]

輸出:[false,false,false]
程式碼:

class Solution {
    public List<Boolean> prefixesDivBy5(int[] A) {
        List<Boolean> list=new ArrayList<Boolean>();
        int length =A.length;       //獲取傳入的陣列的長度
        int a=0;                      //定義變數a用於存放餘數
        for(int i=0;i<length;i++){
a=((a<<1)+A[i])%5; //向左移動1位 (二進位制數) list.add(a==0); } return list; } }

第2題 兩數之和

給定一個整數陣列 nums 和一個整數目標值 target,請你在該陣列中找出 和為目標值 的那 兩個 整數,並返回它們的陣列下標。
你可以假設每種輸入只會對應一個答案。但是,陣列中同一個元素不能使用兩遍。
你可以按任意順序返回答案。
示例 1:
輸入:nums = [2,7,11,15], target = 9

輸出:[0,1]
解釋:因為 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
程式碼:

class Solution {
    public int[] twoSum(int[] nums, int target) {
        for(int i=0;i<nums.length;i++){
            for(int j=0;j<nums.length;j++){
                if((nums[i]+nums[j])==target){				//判斷有沒有在下標i的情況下有數和他相加的接股票是target;
                    return new int[]{i,j};
                }
            }
        }
        return new int[0];						//沒有的話就返回一個長度為0的陣列
    }
}

二、數學

2.1、簡單

第1題 整數反轉

給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
示例 :
輸入:x = -123
輸出:-321
程式碼:

class Solution {
    public int reverse(int x) {
        int temp = 0;
        while (x != 0) {
            int tail = x % 10;           //取最後一位數
            x /= 10;                     //把最後一位數去掉,
            if (temp > Integer.MAX_VALUE/10 || (temp == Integer.MAX_VALUE / 10 && tail > 7)) return 0;  //判斷溢位
            if (temp < Integer.MIN_VALUE/10 || (temp == Integer.MIN_VALUE / 10 && tail < -8)) return 0;
            temp = temp * 10 + tail;        //temp全部左移1位然後把之前取出的最後一位tail加在temp後面
        }
        return temp;
    }
}

temp = temp * 10 + tail;時會導致溢位

在這裡插入圖片描述