国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

網(wǎng)易2017秋招編程題集合+自己的結(jié)果

LiveVideoStack / 1310人閱讀

摘要:小易當(dāng)前處在編號(hào)為的石板,他想跳到編號(hào)恰好為的石板去,小易想知道最少需要跳躍幾次可以到達(dá)。一天小易遇到這樣一個(gè)問題定義函數(shù)為最大的奇數(shù)約數(shù),為正整數(shù)。可是小易現(xiàn)在只想購(gòu)買恰好個(gè)蘋果,小易想購(gòu)買盡量少的袋數(shù)方便攜帶。

前言

周末利用無聊的時(shí)間見識(shí)了一下網(wǎng)易的秋招編程題也嘗試用javascript來實(shí)現(xiàn),總體的難度對(duì)我來說簡(jiǎn)直是{{BANNED}}-_-!,不過最后總算在自己的能力范圍內(nèi)解決了六道,其中有一道是參考了另一位大神的思路最終用代碼實(shí)現(xiàn),還有一道反正我怎么想也想不出來~~有興趣的大神們可以嘗試一下讓我觀摩觀摩哈哈,下面放題

1.回文序列

題目:
如果一個(gè)數(shù)字序列逆置之后跟原序列是一樣的就稱這樣的數(shù)字序列為回文序列。例如:
{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列,
{1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。
現(xiàn)在給出一個(gè)數(shù)字序列,允許使用一種轉(zhuǎn)換操作:
選擇任意兩個(gè)相鄰的數(shù),然后從序列移除這兩個(gè)數(shù),并用這兩個(gè)數(shù)字的和插入到這兩個(gè)數(shù)之前的位置(只插入一個(gè)和)。
現(xiàn)在對(duì)于所給序列要求出最少需要多少次操作可以將其變成回文序列。

輸入例子:[1,1,1,3]

輸出例子:2

我的思路:首先清楚了回文序列的定義之后我可以用輸入的數(shù)組的字符串以及該數(shù)組倒序后的字符串進(jìn)行比較,以此來作為是否是回文序列的判斷,后觀察發(fā)現(xiàn)若需要最少操作來實(shí)現(xiàn)回文序列則必須使數(shù)字較小的數(shù)據(jù)來與后一個(gè)數(shù)據(jù)相加,舉輸入例子來說,數(shù)組第一位和最后一位的數(shù)字是1比3小,那么我在相加的時(shí)候就得拿1和后面的數(shù)字相加才能盡可能的與末尾的3相等。

var result = 0;
function fn(arr){
    var revArr = arr.slice(0).reverse();
    if(revArr.join("")==arr.join("")){
        return result
    }
    else if (revArr[0]==arr[0]) {
        arr.shift();
        arr.pop()
        return fn(arr)
    }
    else {
        revArr.splice(0,2,revArr[0]+revArr[1])
        arr.splice(0,2,arr[0]+arr[1])
        arr[0]>revArr[0]?fn(revArr):fn(arr);
        return ++result
    }
}

var arr = [3,1,1,2,2]
console.log(fn(arr))
2.優(yōu)雅的點(diǎn)

題目:
小易有一個(gè)圓心在坐標(biāo)原點(diǎn)的圓,小易知道圓的半徑的平方。
小易認(rèn)為在圓上的點(diǎn)而且橫縱坐標(biāo)都是整數(shù)的點(diǎn)是優(yōu)雅的,
小易現(xiàn)在想尋找一個(gè)算法計(jì)算出優(yōu)雅的點(diǎn)的個(gè)數(shù),請(qǐng)你來幫幫他。
例如:半徑的平方如果為25
優(yōu)雅的點(diǎn)就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12個(gè)點(diǎn)。
輸出為一個(gè)整數(shù),即為優(yōu)雅的點(diǎn)的個(gè)數(shù)

輸入例子:25

輸出例子:12

我的思路:這題我在審題的時(shí)候誤把園內(nèi)的點(diǎn)也算在內(nèi)了,其實(shí)只是要求在圓上的點(diǎn)既可,該題有點(diǎn)像數(shù)學(xué)里的勾股定理,同理,我在做判斷的時(shí)候就是用半徑的平方減去遍歷的每一個(gè)坐標(biāo)點(diǎn)的橫坐標(biāo)的平方的結(jié)果再進(jìn)行一個(gè)開方,然后判斷該數(shù)是否為整數(shù),又因?yàn)樵搱A的圓心是坐標(biāo)原點(diǎn),那么符合條件的每一個(gè)坐標(biāo)點(diǎn)都有4個(gè)方向,同時(shí)又要注意是否有坐標(biāo)為0的情況,若有則減去4(例如:(0,+-5)和(+-5,0))

function fn(Powr){
    var sum = [];
    var less = 0;
    if(typeof Powr == "number"){
        for(var i=0;i<=Math.sqrt(Powr);i++){
            var coordinate = Math.sqrt(Powr-Math.pow(i,2))
            if(coordinate.toString().split(".")[1]==undefined){ //驗(yàn)證開方后是否為整數(shù)
                if(i==0){
                    less=4; //驗(yàn)證是否存在有圓點(diǎn)的情況
                }
                sum.push({i,coordinate})
            }
        }
        return sum.length*4-less
    }
    else{
        return "請(qǐng)輸入數(shù)字好嗎";
    }
}

var Powr = 25;
console.log(fn(Powr))
3.跳石板

題目:
小易來到了一條石板路前,每塊石板上從1挨著編號(hào)為:1、2、3.......
這條石板路要根據(jù)特殊的規(guī)則才能前進(jìn):對(duì)于小易當(dāng)前所在的編號(hào)為K的 石板,
小易單次只能往前跳K的一個(gè)約數(shù)(不含1和K)步,即跳到K+X(X為K的一個(gè)非1和本身的約數(shù))的位置。
小易當(dāng)前處在編號(hào)為N的石板,他想跳到編號(hào)恰好為M的石板去,小易想知道最少需要跳躍幾次可以到達(dá)。
例如:
N = 4,M = 24:
4->6->8->12->18->24
于是小易最少需要跳躍5次,就可以從4號(hào)石板跳到24號(hào)石板

輸入例子:4 24

輸出例子:5

我的思路:這題。。。我能力有限,思路只想到用窮舉這個(gè)方法了,所以大神們?nèi)绻信d趣的話可以提供一下思路啊哈哈哈~

4.暗黑的字符串

題目:
一個(gè)只包含"A"、"B"和"C"的字符串,
如果存在某一段長(zhǎng)度為3的連續(xù)子串中恰好"A"、"B"和"C"各有一個(gè),那么這個(gè)字符串就是純凈的,
否則這個(gè)字符串就是暗黑的。例如:
BAACAACCBAAA 連續(xù)子串"CBA"中包含了"A","B","C"各一個(gè),所以是純凈的字符串
AABBCCAABB 不存在一個(gè)長(zhǎng)度為2的連續(xù)子串包含"A","B","C",所以是暗黑的字符串
你的任務(wù)就是計(jì)算出長(zhǎng)度為n的字符串(只包含"A"、"B"和"C"),有多少個(gè)是暗黑的字符串。

輸入例子:2,3

輸出例子:9,21

我的思路:這題的話坦白講考的并不是代碼,而是數(shù)學(xué)!!一開始我想著就是用3的n次方減去純凈的字符串個(gè)數(shù)那么得出來的就是暗黑的字符串,但我看了下面這個(gè)圖,我簡(jiǎn)直膜拜

具體的代碼實(shí)現(xiàn)比較簡(jiǎn)單,關(guān)鍵還是思路以及MATH!!

function fn(num){
    
    if(num==1){
        return 3
    }
    else if(num==2){
        return 9
    }
    else{
        return 2*fn(num-1)+fn(num-2)
    }

}

var num=3;
console.log(fn(num))
5.數(shù)字翻轉(zhuǎn)

題目:
對(duì)于一個(gè)整數(shù)X,定義操作rev(X)為將X按數(shù)位翻轉(zhuǎn)過來,并且去除掉前導(dǎo)0。例如:
如果 X = 123,則rev(X) = 321;
如果 X = 100,則rev(X) = 1.
現(xiàn)在給出整數(shù)x和y,要求rev(rev(x) + rev(y))為多少?

輸入例子:123,100

輸出例子:223

我的思路:該題相對(duì)來說不算很難,整體的思路就是利用數(shù)組里的reverse,關(guān)鍵就是如何把數(shù)字的每一位轉(zhuǎn)為對(duì)應(yīng)的數(shù)組

function rev(num){
    var revArr = num.toString().split("").reverse().join("");
    return parseInt(revArr)
}

var x = 123;
var y = 100;
console.log(rev(rev(x) + rev(y)))
6.最大的奇約數(shù)

題目:
小易是一個(gè)數(shù)論愛好者,并且對(duì)于一個(gè)數(shù)的奇數(shù)約數(shù)十分感興趣。
一天小易遇到這樣一個(gè)問題: 定義函數(shù)f(x)為x最大的奇數(shù)約數(shù),x為正整數(shù)。 例如:f(44) = 11.
現(xiàn)在給出一個(gè)N,需要求出 f(1) + f(2) + f(3).......f(N)
例如: N = 7
f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 + 1 + 5 + 3 + 7 = 21
小易計(jì)算這個(gè)問題遇到了困難,需要你來設(shè)計(jì)一個(gè)算法幫助他。

輸入例子:7

輸出例子:21

我的思路:該題的題意不難理解,明白的題意實(shí)現(xiàn)起來并不難,這里我用approximately函數(shù)來獲取我輸入的數(shù)字的所有約數(shù),再經(jīng)過判斷獲取最大的奇數(shù)約數(shù)從而實(shí)現(xiàn),一開始我想到的是遞歸方法,不過。。能不用遞歸就不用遞歸對(duì)吧^ ^

function fn(num){
    var sum = 0;
    for(var j=num;j>0;j--){
        var apprNum = approximately(j);
        for(var i=apprNum.length-1;i>=0;i--){
            if(apprNum[i]%2){
                sum += apprNum[i];
                break;
            }
        }
    }
    return sum
}

function approximately(num){
    var result = []
    for(var i=1;i<=num;i++){
        if(num%i==0){
            result.push(i)
        }
    }
    if(result.length>0){
        return result
    }else{
        return false
    }
}

console.log( fn(7) )
7.買蘋果

題目:
小易去附近的商店買蘋果,奸詐的商販?zhǔn)褂昧死壗灰祝?br>只提供6個(gè)每袋和8個(gè)每袋的包裝(包裝不可拆分)。 可是小易現(xiàn)在只想購(gòu)買恰好n個(gè)蘋果,小易想購(gòu)買盡量少的袋數(shù)方便攜帶。
如果不能購(gòu)買恰好n個(gè)蘋果,小易將不會(huì)購(gòu)買。

輸入例子:20

輸出例子:3

我的思路:輸出的結(jié)果只能是偶數(shù),且每次包裝袋子的時(shí)候都是盡量選擇8個(gè)每袋包裝的袋子,這樣可以盡可能用最少的袋子來購(gòu)買蘋果,所以我列舉了前幾個(gè)比較特殊的選袋情況作為遞歸的判斷條件(用一次遞歸嘿嘿),代碼如下

var freq = 0;
function fn(num){
    if(!(num%2)&&num>=12){
        if(num==12||num==14||num==16){
            return freq+=2;
        }
        else if(num==18){
            return freq+=3;
        }
        else{
            ++freq
            return fn(num-8)
        }
    }
    else{
        return -1;
    }
}

console.log(fn(40))
8.計(jì)算糖果

題目:
A,B,C三個(gè)人是好朋友,每個(gè)人手里都有一些糖果,我們不知道他們每個(gè)人手上具體有多少個(gè)糖果,但是我們知道以下的信息:
A - B, B - C, A + B, B + C. 這四個(gè)數(shù)值.每個(gè)字母代表每個(gè)人所擁有的糖果數(shù).
現(xiàn)在需要通過這四個(gè)數(shù)值計(jì)算出每個(gè)人手里有多少個(gè)糖果,即A,B,C。這里保證最多只有一組整數(shù)A,B,C滿足所有題設(shè)條件

輸入例子:1 -2 3 4

輸出例子:2 1 3

我的思路:一開始我是比較笨的才用分別利用輸入的例子的每一個(gè)對(duì)應(yīng)關(guān)系來寫式子從而一個(gè)一個(gè)遍歷判斷,但其實(shí)經(jīng)過觀察可以發(fā)現(xiàn)A-B和A+B這兩種情況相加后得出來的結(jié)果是2A,依次類推,后面就迎刃而解了

function fn(num){
    var A = (num[0]+num[2])/2;
    var B = (num[1]+num[3])/2;
    if(A.toString().split(".")[1]==undefined&&B.toString().split(".")[1]==undefined){
        var C = num[3]-B;
        return A+" "+B+" "+C
    }
    else{
        return "No"
    }
}

var num = [1,-2,3,4]
console.log(fn(num))

PS:有的題可能還有更好的解法,只是暫時(shí)還沒想出來,主要就是那個(gè)跳石板怎么想都想不出來,希望有大神來幫忙解答哈哈^

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/91272.html

相關(guān)文章

  • 「碼個(gè)蛋」2017年200篇精選干貨集合

    摘要:讓你收獲滿滿碼個(gè)蛋從年月日推送第篇文章一年過去了已累積推文近篇文章,本文為年度精選,共計(jì)篇,按照類別整理便于讀者主題閱讀。本篇文章是今年的最后一篇技術(shù)文章,為了讓大家在家也能好好學(xué)習(xí),特此花了幾個(gè)小時(shí)整理了這些文章。 showImg(https://segmentfault.com/img/remote/1460000013241596); 讓你收獲滿滿! 碼個(gè)蛋從2017年02月20...

    wangtdgoodluck 評(píng)論0 收藏0
  • 阿里秋招內(nèi)推編程

    摘要:參加了阿里的內(nèi)推。面試前被要求做了一道編程題,現(xiàn)在分享一下。題目知識(shí)點(diǎn)閉包,構(gòu)造函數(shù)與原型。題目要求的是點(diǎn)擊相應(yīng)的刪除按鈕刪除列表的相應(yīng)行。后來思考了一下,將循環(huán)內(nèi)的代碼改為。 2017.8參加了阿里的內(nèi)推。面試前被要求做了一道編程題,現(xiàn)在分享一下。 題目要求:巴拉巴拉具體忘記了,大概就是一個(gè)列表,每個(gè)列表后面有個(gè)刪除按鈕,點(diǎn)擊相應(yīng)的刪除按鈕就可以刪除相應(yīng)的列表的其中一行,并且要以面向...

    xinhaip 評(píng)論0 收藏0
  • 阿里秋招內(nèi)推編程

    摘要:參加了阿里的內(nèi)推。面試前被要求做了一道編程題,現(xiàn)在分享一下。題目知識(shí)點(diǎn)閉包,構(gòu)造函數(shù)與原型。題目要求的是點(diǎn)擊相應(yīng)的刪除按鈕刪除列表的相應(yīng)行。后來思考了一下,將循環(huán)內(nèi)的代碼改為。 2017.8參加了阿里的內(nèi)推。面試前被要求做了一道編程題,現(xiàn)在分享一下。 題目要求:巴拉巴拉具體忘記了,大概就是一個(gè)列表,每個(gè)列表后面有個(gè)刪除按鈕,點(diǎn)擊相應(yīng)的刪除按鈕就可以刪除相應(yīng)的列表的其中一行,并且要以面向...

    dcr309duan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<