Swap Without Extra Variable

Given two variables, x and y, swap two variables without using a third variable.

Example

Given x = 10, y = 5
Return 15.

思路:考察位运算,异或。 同一个数异或两次还是其本身。

 1 class Solution {
 2 public:
 3     /**
 4      * @param x an integer
 5      * @param y an integer
 6      * @return nothing
 7      */
 8     void swap(int &x, int &y) {
 9         // Write your code here
10         x = x ^ y;
11         y = x ^ y;
12         x = x ^ y;
13     }
14 };
时间: 2024-11-05 18:33:42

Swap Without Extra Variable的相关文章

Spark MLlib Linear Regression线性回归算法

1.Spark MLlib Linear Regression线性回归算法 1.1 线性回归算法 1.1.1 基础理论 在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回归系数的模型参数的线性组合. 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析.如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间

Basic Sort Algorithms

1. Bubble Sort public void bubbleSort(int[] arr) { boolean swapped = true; int j = 0; int tmp; while (swapped) { swapped = false; j++; for (int i = 0; i < arr.length - j; i++) { if (arr[i] > arr[i + 1]) { tmp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1

MlLib--逻辑回归笔记

批量梯度下降的逻辑回归可以参考这篇文章:http://blog.csdn.net/pakko/article/details/37878837 看了一些Scala语法后,打算看看MlLib的机器学习算法的并行化,那就是逻辑回归,找到package org.apache.spark.mllib.classification下的LogisticRegressionWithSGD这个类,直接搜train()函数. def train( input: RDD[LabeledPoint], numIter

逻辑回归(logistic-regression)之梯度下降法详解

引言 逻辑回归常用于预测疾病发生的概率,例如因变量是是否恶性肿瘤,自变量是肿瘤的大小.位置.硬度.患者性别.年龄.职业等等(很多文章里举了这个例子,但现代医学发达,可以通过病理检查,即获取标本放到显微镜下观察是否恶变来判断):广告界中也常用于预测点击率或者转化率(cvr/ctr),例如因变量是是否点击,自变量是物料的长.宽.广告的位置.类型.用户的性别.爱好等等. 本章主要介绍逻辑回归算法推导.梯度下降法求最优值的推导及spark的源码实现. 常规方法 一般回归问题的步骤是: 1. 寻找预测函数

SparkMLlib之 logistic regression源码分析

最近在研究机器学习,使用的工具是spark,本文是针对spar最新的源码Spark1.6.0的MLlib中的logistic regression, linear regression进行源码分析,其理论部分参考:http://www.cnblogs.com/ljy2013/p/5129610.html 下面我们跟随我的demo来一步一步解剖源码,首先来看一下我的demo: 1 package org.apache.spark.mllib.classification 2 3 import or

Java:foreach实现原理

第一部分: For-each Loop Purpose The basic for loop was extended in Java5 to make iteration over arrays and other collections more convenient. This newer for statement is called the enhanced for or for-each (because it is called this in other programming

MLlib之LR算法源码学习

/** * :: DeveloperApi :: * GeneralizedLinearModel (GLM) represents a model trained using * GeneralizedLinearAlgorithm. GLMs consist of a weight vector and * an intercept. * * @param weights Weights computed for every feature. * @param intercept Inter

Data Cleaning 5

1. Histogram vs. Bar chart  With bar charts, each column represents a group defined by a categorical variable; and with histograms, each column represents a group defined by a quantitative variable.Which means we can change the order of categories in

Spark MLlib Logistic Regression逻辑回归算法

1.1 逻辑回归算法 1.1.1 基础理论 logistic回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数g(z)将最为假设函数来预测.g(z)可以将连续值映射到0和1上. 它与线性回归的不同点在于:为了将线性回归输出的很大范围的数,例如从负无穷到正无穷,压缩到0和1之间,这样的输出值表达为"可能性"才能说服广大民众.当然了,把大值压缩到这个范围还有个很好的好处,就是可以消除特别冒尖的变量的影响. Logistic函数(或称为Sigm