请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为要被删除的节点。
class Solution {
public:
void deleteNode(ListNode* node) {
node->val=node->next->val;
node->next=node->next->next;
}
};
给你一个长度为n的整数数组nums,其中n> 1,返回输出数组output,其中output[i]等于nums中除nums[i]之外其余各元素的乘积。
class Solution {
public:
vector<int> productExceptSelf(vector<int>& nums) {
//O(n),不使用除法
int n=nums.size();
vector<int>res(nums.size());
res[0]=1;
for(int i=1;i<n;i++)
{
res[i]=res[i-1]*nums[i-1];
}
int temp=1;
for(int i=n-1;i>=0;i--)
{
res[i]=res[i]*temp;
temp*=nums[i];
}
return res;
}
};
你和你的朋友,两个人一起玩Nim 游戏:
桌子上有一堆石头。
你们轮流进行自己的回合,你作为先手。
每一回合,轮到的人拿掉 1 - 3 块石头。
拿掉最后一块石头的人就是获胜者。
假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为n的情况下赢得游戏。如果可以赢,返回true;否则,返回false。
class Solution {
public:
bool canWinNim(int n) {
return (n % 4 != 0);
}
};