LeetCode Javascript實現 283. Move Zeroes 349. Intersection of Two Arrays 237. Delete Node in a Linked

283. Move Zeroes

var moveZeroes = function(nums) {


   var num1=0,num2=1;
   while(num1!=num2){
   nums.forEach(function(x,y){
           if(x===0){
               nums.splice(y,1);
               nums.push(0);
           }
           num1 = nums ;
   }); 
   nums.forEach(function(x,y){
           if(x===0){
               nums.splice(y,1);
               nums.push(0);
           }
           num2 = nums ;
   }); 
}
};

這題自己並不難,只是方法要考慮好就最好了,用到方法forEach(),splice(),push()node


349. Intersection of Two Arrays

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function(nums1, nums2) {
    var arrt1 = [], i = 0;
    nums1.forEach(function(x,y){
        nums2.forEach(function(z,v){
            if(z==x){
                arrt1[i]=x;
                i++;
            }
        });

    });



  var ret = [];

  for (var k = 0; k < arrt1.length; k++) {
    var item = arrt1[k];
    if (ret.indexOf(item) === -1) {
      ret.push(item);
    }
  }



return ret;

};

 

這題個人思路是先將兩個數組遞歸遍歷,將有重複的部分都存進某個數組,而後數組去重!可是這樣在效率上很低,大約擊敗7%左右的人,僅僅是個可用可是很差用的方法數組


 

237. Delete Node in a Linked List

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} node
 * @return {void} Do not return anything, modify node in-place instead.
 */
var deleteNode = function(node) {
    node.val=node.next.val;
    node.next=node.next.next;
};

【注】一道鏈表題,題目很簡單,不過一開始沒讀懂。算是複習一下鏈表。this

相關文章
相關標籤/搜索